我应该把什么放在类定义的顶层?

时间:2014-01-04 04:09:20

标签: python

我不确定应该把什么放在类定义的顶层。

以下是代码:

class MyClass(object):
    print("Here's the top level code in this class")

    def __new__(cls):
        print("Code in __new__ function")
        return super(Test, cls).__new__(cls)

    def __init__(self):
        print("Code in __init__ function")
        return

我应该在顶级代码中添加什么代码?是否有任何我无法放入__new____init__的内容?划分这些代码的最佳做法是什么?

1 个答案:

答案 0 :(得分:0)

类级别变量,即所有类实例共享的变量位于顶级

class MyClass(object):
    instance_count = 0

    def __init__(self):
        MyClass.instance_count += 1

    def __del__(self):
        MyClass.instance_count -= 1

例如。

>>> MyClass.instance_count
0
>>> mc = MyClass()
>>> MyClass.instance_count
1
>>> del mc
>>> MyClass.instance_count
0