Python 中没有静态变量,但您可以为此使用类变量。这是一个例子:
class MyClass(object):
x = 0
def __init__(self, x=None):
if x:
MyClass.x = x
def do_something(self):
print "x:", self.x
c1 = MyClass()
c1.do_something()
>> x: 0
c2 = MyClass(10)
c2.do_something()
>> x: 10
c3 = MyClass()
c3.do_something()
>> x: 10
当您调用时self.x
- 它首先查找实例级变量,实例化为self.x
,如果未找到 - 然后查找Class.x
. 因此,您可以在类级别定义它,但在实例级别覆盖它。
一个广泛使用的示例是使用默认类变量,并可能覆盖到实例中:
class MyClass(object):
x = 0
def __init__(self, x=None):
self.x = x or MyClass.x
def do_something(self):
print "x:", self.x
c1 = MyClass()
c1.do_something()
>> x: 0
c2 = MyClass(10)
c2.do_something()
>> x: 10
c3 = MyClass()
c3.do_something()
>> x: 0