熟悉了传统的 C++/Java 类定义的风格,来感受一下 Python 是如何定义类的。本篇是阅读 《The Quick Python Book》第二版关于类定义的笔记,由原书内容进一步引申,不过是依照本人的思考顺序来组织的。在理解 Python 类定义的同时头脑中应该闪现出 JavaScript/Java 如何定义类的情景。
最简单的类定义
class MyClass:
pass
由于 class MyClass
后面要有个冒号,而冒号后总得有点东西才能表示该类定义结束了,于是放个 pass
当占位符。Python 也像 Java 一样,有一个根类,叫做 object,例如上面的定义
1 2 3 4 5 |
>>> MyClass.__bases__ (<class 'object'>,) >>> import inspect >>> inspect.getmro(MyClass) (<class '__main__.MyClass'>, <class 'object'>) |
我们能看到它隐式的基类是 object
, 而不用显式的声明为 class MyClass(object)
。看到 __bases__
属性是一个 Tuple, 意识到 Python 是支持多重继承的。 阅读全文 >>