esp*_*eed 0 python reflection inheritance multiple-inheritance method-resolution-order
我希望能够打电话给'person.Person.类 "并取回'类person.Person’,像它用于一个Person对象:
>>> p = person.Person()
>>> p.__class__
<class 'person.Person'>
>>> person.Person.__class__
<class 'perframe.datatype.TypeSystemMeta'>
Run Code Online (Sandbox Code Playgroud)
这是Person继承树......
class TypeSystem(object):
__metaclass__ = TypeSystemMeta
class Model(TypeSystem):
pass
class Node(Vertex,Model):
pass
class Person(Node):
pass
Run Code Online (Sandbox Code Playgroud)
这里发生了什么?
小智 5
在Python中,甚至类都是对象,每个对象都是类的实例.Person指的是"类对象",它是一个实例type.在这种情况下,游戏中有一个元类 - 高度混乱的元编程魔术,但如果你想要一个介绍,请参阅Python中的元类是什么?.如果你声明a class Foo(object),Foo.__class__ is type(对于不从对象继承的旧式classe,事情会有所不同,而且更加混乱).顺便说一下,这会导致更加奇怪,因为这type似乎是一个例子.
| 归档时间: |
|
| 查看次数: |
325 次 |
| 最近记录: |