使用 class 名称访问静态变量
Use class name to access static variables
是否可以在不显式使用 class 名称的情况下访问 class 变量,以防我以后决定更改 class 的名称?
像这样
static_variable = 'stuff'
className = CLASS
def method (self):
className.static_variable
这是否可以通过简单的方式实现?
回答
self.static_variable 或 __class__.static_variable
别忘了看评论。
对于正在寻找此问题答案的任何人,暂时忽略混合静态变量和实例变量是否是个好主意。
有两种简单的方法可以解决这个问题。
第一种方式
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)
可以使用 class.static_variable 或使用
self.static_variable 只要在代码的某处没有为 self.static_variable 定义实例变量。
不过,使用 self 会使您不清楚访问的是静态变量还是实例变量,因此我首选的做法是简单地在前面添加 static_variable 用 class 而不是 ClassName.static_variable
是否可以在不显式使用 class 名称的情况下访问 class 变量,以防我以后决定更改 class 的名称?
像这样
static_variable = 'stuff'
className = CLASS
def method (self):
className.static_variable
这是否可以通过简单的方式实现?
回答
self.static_variable 或 __class__.static_variable
别忘了看评论。
对于正在寻找此问题答案的任何人,暂时忽略混合静态变量和实例变量是否是个好主意。
有两种简单的方法可以解决这个问题。
第一种方式
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)
可以使用 class.static_variable 或使用 self.static_variable 只要在代码的某处没有为 self.static_variable 定义实例变量。
不过,使用 self 会使您不清楚访问的是静态变量还是实例变量,因此我首选的做法是简单地在前面添加 static_variable 用 class 而不是 ClassName.static_variable