我有点厌倦了输入MyLongAdvancedClassName._template来访问类变量。它们有时是常数,但并非总是如此。你会说我想在常量的情况下使用模块全局变量。但我希望将它们定义在使用地点附近,而不是在文件的开头。我也不喜欢本地人,因为如果是长字符串,你会在每次调用时重新分配它。
是否可以执行以下操作:
_c = MyLongAdvancedClassName
class MyLongAdvancedClassName:
...
_template = " My long advanced text %i "
def method(self):
print _c._template
答案 0 :(得分:3)
您可以在python中使用 self 关键字,而不是使用当前的类名。
class MyLongAdvancedClassName:
...
_template = " My long advanced text %i "
def method(self):
print self._template
希望它有所帮助。
答案 1 :(得分:2)
你正在寻找的是使用自我(看看San的回答)。 但是,这需要您拥有该类的实例。 如果你想用类本身来做,那么你可以像这样使用classmethod装饰器:
class MyLongAdvancedClassName:
...
_template = " My long advanced text %i "
@classmethod
def method(cls):
print cls._template