Python类作为对象
我想知道下面的类是在定义时变成对象,还是在实例化时变成对象Python类作为对象,python,class,object,Python,Class,Object,我想知道下面的类是在定义时变成对象,还是在实例化时变成对象 class BlaBlaCar(object): def __init__(self): pass def bla(self): pass blabla = BlaBlaCar() 所以,布拉布拉是一个物体。问题是:Blacar类也是一个对象吗?所以当我不调用它时,它本身就是一个对象?当定义为“类Blacar(对象)”时,它是否作为对象存在于内存中 编辑: 我很清楚,当我这样做时: 打
class BlaBlaCar(object):
def __init__(self):
pass
def bla(self):
pass
blabla = BlaBlaCar()
所以,布拉布拉是一个物体。问题是:Blacar类也是一个对象吗?所以当我不调用它时,它本身就是一个对象?当定义为“类Blacar(对象)”时,它是否作为对象存在于内存中
编辑:
我很清楚,当我这样做时:
打印(blacar()),然后实例化类对象
问题是,当我创建类主体定义时,我要创建对象吗 我同意@jornsharpe的评论,我认为你可以找到你需要的所有信息。Python中的几乎所有东西都是对象。我也查了一些这方面的参考资料 据说: 类定义语法 类定义的最简单形式如下所示:
正如其他地方指出的,Python中的几乎所有东西都是对象。 但是,我觉得你的问题 问题是,当我创建类主体定义时,我要创建对象吗 尚未直接解决 当Python执行类的定义时,会创建一个对象。但值得注意的是
类型的实例
BlaBlaCar
)首先,为了消除任何疑问,类定义确实为您提供了一个表示类本身的对象(而不是实例): 所以你可以看到,
blacar
是内存中的一个对象
您会问,“创建类对象的目的是什么?”
类定义通常在模块中(或者在上面的示例中,在当前名称空间中,即\uuuuu main\uuuu
)。执行此模块时,将创建一个模块对象。作为模块执行的一部分,执行的任何类定义都将产生一个类对象,然后该类对象将绑定到模块命名空间中的类名
因此,在某种意义上,可以说类对象“在”模块的命名空间中。但实际上,您可以问一个类似的问题,“模块对象创建到哪里?”,在这一点上,答案只是解释器创建了对象,并且有一个或多个对它的引用,就像您创建的任何其他对象一样
一个微妙之处是垃圾收集器将收集任何没有引用的对象。对于类对象,周围的模块在其名称空间中有它。就模块本身而言,总是有一个来自
sys.modules
等位置的引用 是的,类对象也是一个对象。Python中几乎所有的东西都是一个对象——类、实例、函数、模块……不完全是重复的,但与之类似:。谷歌的东西<代码>打印(blabla);打印(BlaBlaCar)这是病毒广告吗?你们班的名字很明显
class ClassName:
<statement-1>
.
.
.
<statement-N>
blabla = BlaBlaCar()
>>> class BlaBlaCar(object):
... pass
...
>>> id(BlaBlaCar)
57088312L