【发布时间】:2011-12-11 05:12:08
【问题描述】:
再一次,没有找到这个问题的答案有点惊讶......
我问的真实原因是: 我有一个类中的常量字典
class MySQLConstants():
DECIMAL = 0
TINY = 1
SHORT = 2
LONG = 3
FLOAT = 4
DOUBLE = 5
... etc.
我想要一本字典,这样如果给定数字,我就可以找到常数......很容易:
fieldTypeDic = {}
for fieldType in dir( MySQLConstants ):
value = getattr( MySQLConstants, fieldType )
fieldTypeDic[ value ] = fieldType
...在类定义语句执行后,将其设置为 MySQLConstants 的 @static 方法并通过 MySQLConstants.createDic() 调用它会很容易...但我只是想知道是否有任何方法获取一个方法,不可避免地@static,在创建类时运行(注意,我不是谈论创建此类的实例!)...
【问题讨论】:
-
除了创建字典外,您还可以直接使用 getattr(MySQLConstants, 'TINY') 进行查找
-
...除了我想从提供的数字中获取常量的名称...
-
首先将常量声明为字典,自动生成反向字典,并使用
__getattr__使它们看起来像类成员。 -
@RussellBorogove 抱歉,我不清楚...当您说“自动生成”时...这可能必须在方法内部发生...所以我们不是回到原来的关于创建类时调用的方法的问题?
-
@mikerodent - 我的建议与 Ethan Furman 的第二个示例类似。
标签: python class methods static