我很头疼,试图理解元类类型、对象类和类类型之间的循环关系。我正在尝试理解Python如何将所有东西都变成对象。是因为所有东西都是元类类型的实例,还是因为所有东西都是object类的子类。如果是因为是object类的子类,这是否意味着将类对象命名为pyobj,那么Python中的所有东西都以pyobj开头?我知道由元类创建的对象是类型/类,这些类型/类随后用于创建其他对象。
可以说Python首先使用type元类创建类对象(为了简洁起见,我简化了元类)是安全的。
这意味着类对象是一种类类型,它不继承任何其他类的属性。然后它创建类类型:
暗示类型类是类类型的类,并且它继承了对象类的属性。然后通过从类对象继承来创建其他类。
类似于创建一个Animal类的方式如下:
这是否意味着用于创建类对象的元类仍然是用于创建此Animal类的元类类型,还是默认使用元类类型?
正在使用哪种类型,是元类类型还是在创建对象后创建的类型类?
基类对象创建的类类型何时发挥作用?
我也试图从上面所有的回复和这篇文章中理解对象和类之间到底发生了什么http://www.cafepy.com/article/python_types_and_objects/python_types_and_objects.html 我仍然感到困惑。这两个类在对象创建方面的关系是什么?
我会明白吗,还是这是一个鸡生蛋的问题?
>>> isinstance(type, object)
True
>>> isinstance(object,type)
True
>>> issubclass(object,type)
False
>>> issubclass(type,object)
True
可以说Python首先使用type元类创建类对象(为了简洁起见,我简化了元类)是安全的。
type('object',(),{})
这意味着类对象是一种类类型,它不继承任何其他类的属性。然后它创建类类型:
type('type', (object,),{})
暗示类型类是类类型的类,并且它继承了对象类的属性。然后通过从类对象继承来创建其他类。
type('dict', (object,), {})
type('Animal', (object), {})
类似于创建一个Animal类的方式如下:
class Animal:
pass
这是否意味着用于创建类对象的元类仍然是用于创建此Animal类的元类类型,还是默认使用元类类型?
正在使用哪种类型,是元类类型还是在创建对象后创建的类型类?
基类对象创建的类类型何时发挥作用?
我也试图从上面所有的回复和这篇文章中理解对象和类之间到底发生了什么http://www.cafepy.com/article/python_types_and_objects/python_types_and_objects.html 我仍然感到困惑。这两个类在对象创建方面的关系是什么?
我会明白吗,还是这是一个鸡生蛋的问题?