在Python中引用类变量而不创建实例
我正在编写一个类,它基本上是一个数据结构,用来保存状态代码和与每个状态代码相关联的dict。我想调用一个方法,提供一个数字状态码,然后返回一个字典在Python中引用类变量而不创建实例,python,python-2.7,Python,Python 2.7,我正在编写一个类,它基本上是一个数据结构,用来保存状态代码和与每个状态代码相关联的dict。我想调用一个方法,提供一个数字状态码,然后返回一个字典 class StatusCode(object): def __init__(self): self.codes = { 0: { 'flag': "QEX_OK", 'message': "job successful" },
class StatusCode(object):
def __init__(self):
self.codes = { 0: { 'flag': "QEX_OK", 'message': "job successful" },
1: { 'flag': "QEX_CMDLINE", 'message': "general cmd line syntax or semantic error" }
}
@staticmethod
def get_code(code):
return self.codes[code]
我如何才能正确地实现这一点
多少泰铢。那么:
class StatusCode(object):
codes = {0: { 'flag': "QEX_OK", 'message': "job successful" },
1: { 'flag': "QEX_CMDLINE", 'message': "general cmd line syntax or semantic error" }
}
@staticmethod
def get_code(code):
return StatusCode.codes[code]
print StatusCode.get_code(1)
使用
@classmethod
:
class StatusCode(object):
codes = {
0: { 'flag': "QEX_OK", 'message': "job successful" },
1: { 'flag': "QEX_CMDLINE", 'message': "general cmd line syntax or semantic error"},
}
@classmethod
def get_code(cls, code):
return cls.codes[code]
本例中的“cls”是什么?@BenH它是类对象,类似于实例方法中的实例对象
self
。它是对StatusCode
类对象的引用,比如self
是对已创建对象实例的引用。这就是我所需要的。。。。我在摆弄init(),不需要这么做。多谢。