元类添加无效的属性类?

这是我的代码:

def __metaclass__(clsname, bases, dct):
    dct["key1"] = "value1"
    dct["invalid identifier"] = "value2"
    return type(clsname, bases, dct)


class Cls():
    pass



for name in dir(Cls):
    if not name.startswith("_"):
        print name


当我运行它时,我得到:

>>>
invalid identifier
key1
>>>


是否可以访问invalid identifier

最佳答案

您仍然可以使用getattr()访问该标识符:

getattr(Cls, 'invalid identifier')


或直接在类__dict__映射上:

Cls.__dict__['invalid identifier']


您只是不能使用直接属性访问,因为它实际上不是有效的标识符。

关于python - __metaclass__向创建的类添加无效属性?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25158701/

10-12 21:44