调用类的属性是否在Python中实例化该类的对象?

时间:2015-09-22 22:56:51

标签: python

如果我上课Foo ......

class Foo(object): 

    bar = True        
  • 调用Foo.bar实例化一个Foo类型的对象,立即收集垃圾?

  • 我是否必须在Foo和bar之间包含()来创建该类型的实例?

  • 如果我确实需要括号,他们会用什么方法调用? __init__()

1 个答案:

答案 0 :(得分:1)

  

调用Foo.bar实例化一个Foo类型的对象,立即收集垃圾?

没有。您已在此处将Foo.bar定义为类属性,而不是实例属性。

  

我是否必须在Foo和bar之间包含()来创建该类型的实例?

是的,调用Foo()是创建Foo对象的正确语法。

  

如果我确实需要括号,他们会采用什么方法? __init__()

将调用第一个__new__(可能来自超类object)实际创建新对象,然后将调用__init__来初始化已存在的对象。