有没有办法在没有显式使用类名的情况下访问类变量,以防我后来决定更改类的名称?
像这样的东西
static_variable = 'stuff'
className = CLASS
def method (self):
className.static_variable
这是否可以通过简单的方式实现?
回答
self.static_variable 或 __class __。static_variable
答案 0 :(得分:0)
对于任何寻找答案的人来说,暂时忽略混合静态变量和实例变量是不是一个好主意。
有两种简单的方法可以解决这个问题。
第一种方式
class MyClass():
static_variable = 'VARIABLE'
def __init__(self):
self.instanceVariable = 'test'
def access_static(self):
print(__class__.static_variable)
第二种方式
class MyClass():
static_variable = 'VARIABLE'
def __init__(self):
self.instanceVariable = 'test'
def access_static(self):
print(self.static_variable)
可以使用类 .static_variable或使用来访问实例变量 self.static_variable,只要在代码中的某处为self.static_variable定义了一个实例变量。
使用self会使你在访问静态变量或实例变量方面变得模棱两可,所以我这样做的首选方法是简单地在 _class _ 前面添加 static_variable em>而不是 ClassName.static_variable