【EffectivePython】读书笔记-05类与接口
- 游戏开发
- 2025-08-19 10:33:02

1. 让组合起来的类来实现多层结构,不用使用嵌套的内置类型 2. 让简单的接口接收函数,而不是类的实例 from collections import defaultdict current = { 'a': 1, 'b': 2, 'c': 3, } add_to_current = { 'f': 4, 'e': 5, } def increment(): count = 0 def missing(): nonlocal count count += 1 return 0 result = defaultdict(missing, current) for key, val in add_to_current.items(): result[key] += count return count, result count, result = increment() print(count, result)
某个类如果定义了__call__特殊方法,那么它的实例就可以像普通的 Python 函数那样调用。
3. 通过@classmethod 多态来构造同一体系中的各类对象解决的问题:构造对象的办法不够通用
4. 通过 super 初始化超类super 能够确保菱形继承体系中的共同超类只初始化一次
5. 考虑用 mix-in 类来表示可组合的功能不实现__init__方法的类?
6. 优先考虑用 public 属性表示应受保护的数据,不要用 private 属性表示如果子类中需要用到超类的属性,又不希望对外暴露,考虑申明为保护属性 只有一种情况应该是有私有属性,即避免命名冲突。
7. 自定义的容器类型应该从 collections.abc 继承python 内置的 collections.abc 模块定义了一系列抽象基类(abstract base class),把每种容器类型应该提供的所有常用方法都写了出来。我们只需要从这样的抽象基类里面继承就好。同时,如果忘了实现某些必备的方法,那么程序会报错,提醒我们这些方法必须实现。
【EffectivePython】读书笔记-05类与接口由讯客互联游戏开发栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“【EffectivePython】读书笔记-05类与接口”
下一篇
网络安全(黑客)自学