python中的classobject是什么?它和类名一样吗


class Test:
def __init__(self):
print('Object reference:', id(self))
print('Class object reference', id(Test))

t = Test()

对象参考:2170838573008

类对象引用:2170806511808

它与类名不同。一切都是Python中的对象。类是,它们的实例也是。即使是模块和功能,也只是一切。

类名和类对象不一样。当您创建类的实例时,您将为该类创建一个对象。在您的案例中,t是类测试的对象。

python中几乎所有的东西都是对象。就像你的类是一种对象一样。

class Test:
def __init__(self):
print('Object reference:',id(self))
print('Class object reference',id(Test))

t = Test()  // Here t is object of class Test.

使用class关键字时,实际上是在创建一个类型为type的实例。类本身就是实例。

class Test:
pass
print(isinstance(Test, type))  # True
print(type(Test))              # <class 'type'>

这里,Test只是全局命名空间中的一个标签,它指向您创建的这个实例。

现在,当你调用你的类,这里是Test,你正在创建它的一个实例。self在你的类中,指向这个对象(你的类的实例(。

最新更新