多个 类 的一个常量值
One constant value for multiple classes
假设我有六个不同的 classes,其中三个应该使用相同的常量值。我们可以做什么?我们要么:
定义为全局变量
A = 1
class B:
def __init__(self):
self.a = A
class C:
def __init__(self):
self.a = A
class D:
def __init__(self):
self.a = A
定义为class level for 1 class 给另一个class:
class B:
A = 1
def __init__(self):
self.b = 2
class C:
def __init__(self, a):
self.a = a
self.b = 3
b = B()
c = B(a=b.A)
第二种方法是我自己编的,对我来说很脏,也不方便。有什么办法可以避免使用全局变量吗?
使用class继承:
class Holder:
a = 4
class A(Holder):
pass
print A().a
您可以使用继承,使用 B
作为基础 class
class B:
A = 1
def __init__(self):
self.b = 2
class C(B):
def __init__(self):
B.__init__(self)
self.a = B.A
self.b = 3
b = B()
c = C()
print c.a
假设我有六个不同的 classes,其中三个应该使用相同的常量值。我们可以做什么?我们要么:
定义为全局变量
A = 1 class B: def __init__(self): self.a = A class C: def __init__(self): self.a = A class D: def __init__(self): self.a = A
定义为class level for 1 class 给另一个class:
class B: A = 1 def __init__(self): self.b = 2 class C: def __init__(self, a): self.a = a self.b = 3 b = B() c = B(a=b.A)
第二种方法是我自己编的,对我来说很脏,也不方便。有什么办法可以避免使用全局变量吗?
使用class继承:
class Holder:
a = 4
class A(Holder):
pass
print A().a
您可以使用继承,使用 B
作为基础 class
class B:
A = 1
def __init__(self):
self.b = 2
class C(B):
def __init__(self):
B.__init__(self)
self.a = B.A
self.b = 3
b = B()
c = C()
print c.a