Python:如何从类变量访问class .__ dict__?

鲍里斯·伯科夫(Boris Burkov)

我需要定义一个名为“ class”的类变量。我想直接在类名称空间中执行此操作,而不是在类方法中执行此操作。显然,我不能直接说:

class MyClass(object):
    a = 1
    b = 2
    class = 3

所以,我想做类似的事情:

class MyClass(object):
    a = 1
    b = 2
    self.__dict__["class"] = 3

其中的“ self”应替换为对该类的引用。那么,如何从类名称空间引用一个类呢?


注意:这个问题似乎是人为的,但这是出于实际目标。

实际上,MyClass它是Django REST Framework序列化程序,我需要在其上定义“类”字段,因为该REST端点必须遵循某种协议。

有一个为Serializers定义的元类,它调用__new__()类创建并__new__()聚合在类中定义的所有字段,并使用它们填充字段注册表。因此,我必须class在创建类之前定义变量另请参阅:Django REST框架:如何使字段的详细名称与其字段名称不同?

肠杆菌

您可以这样做:

class MyClass(object):
    a = 1
    b = 2
    vars()['class'] = 3

但是,由于class是保留关键字,因此您必须使用getattr来访问变量setattr,因此class仍为字符串。

>>> m = MyClass()
>>> getattr(m, 'class')
3

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Python:如何从类变量访问class .__ dict__?

来自分类Dev

如何修改__dict__类(映射代理)?

来自分类Dev

Python类继承和__dict__查找

来自分类Dev

输出** kwargs,* args的__dict__类

来自分类Dev

Python 3中的继承和__dict__

来自分类Dev

Python ** obj .__ dict__ equilavent命令

来自分类Dev

在Python中动态添加类__dict__属性

来自分类Dev

使用class时的Python .format()KeyError .__ dict__

来自分类Dev

我的__dict__在哪里?从namedtuple继承的类

来自分类Dev

内置 __dict__ 返回以类名作为前缀的属性名称

来自分类Dev

使 Pylint 识别通过修改 __dict__ 定义的变量

来自分类Dev

如何JSON序列化Django模型的__dict__?

来自分类Dev

如何对Django模型的__dict__进行JSON序列化?

来自分类Dev

python cffi库对象自省导致__dict__对象更改

来自分类Dev

Python,用 __dict__ 输出连接字符串

来自分类Dev

为什么在访问Python对象属性时使用getattr()而不是__dict__?

来自分类Dev

如何在没有__dict__的情况下创建类对象

来自分类Dev

python:打印__dict__:是否可以按照类中列出的顺序打印?

来自分类Dev

python:打印__dict__:是否可以按照类中列出的顺序打印?

来自分类Dev

通过删除元类中的__dict__内容来减少类内存

来自分类Dev

除非使用derect初始化,为什么__dict__不包含类成员?

来自分类Dev

出于好奇:为什么python3不使用__dict__作为默认的相等实现?

来自分类Dev

使所有属性都出现在python的__dict__方法上

来自分类Dev

Python类。键作为self.key存在,但不存在于self .__ dict__

来自分类Dev

“对象没有 __dict__,因此您不能将任意属性分配给对象类的实例。”

来自分类Dev

为什么“ object .__ dict__是object .__ dict__”为假?

来自分类Dev

使用`__dict__`还是`vars()`?

来自分类Dev

字典和对象内部__dict__的大小不同

来自分类Dev

CPython-向包含__dict__的新类型添加属性

Related 相关文章

  1. 1

    Python:如何从类变量访问class .__ dict__?

  2. 2

    如何修改__dict__类(映射代理)?

  3. 3

    Python类继承和__dict__查找

  4. 4

    输出** kwargs,* args的__dict__类

  5. 5

    Python 3中的继承和__dict__

  6. 6

    Python ** obj .__ dict__ equilavent命令

  7. 7

    在Python中动态添加类__dict__属性

  8. 8

    使用class时的Python .format()KeyError .__ dict__

  9. 9

    我的__dict__在哪里?从namedtuple继承的类

  10. 10

    内置 __dict__ 返回以类名作为前缀的属性名称

  11. 11

    使 Pylint 识别通过修改 __dict__ 定义的变量

  12. 12

    如何JSON序列化Django模型的__dict__?

  13. 13

    如何对Django模型的__dict__进行JSON序列化?

  14. 14

    python cffi库对象自省导致__dict__对象更改

  15. 15

    Python,用 __dict__ 输出连接字符串

  16. 16

    为什么在访问Python对象属性时使用getattr()而不是__dict__?

  17. 17

    如何在没有__dict__的情况下创建类对象

  18. 18

    python:打印__dict__:是否可以按照类中列出的顺序打印?

  19. 19

    python:打印__dict__:是否可以按照类中列出的顺序打印?

  20. 20

    通过删除元类中的__dict__内容来减少类内存

  21. 21

    除非使用derect初始化,为什么__dict__不包含类成员?

  22. 22

    出于好奇:为什么python3不使用__dict__作为默认的相等实现?

  23. 23

    使所有属性都出现在python的__dict__方法上

  24. 24

    Python类。键作为self.key存在,但不存在于self .__ dict__

  25. 25

    “对象没有 __dict__,因此您不能将任意属性分配给对象类的实例。”

  26. 26

    为什么“ object .__ dict__是object .__ dict__”为假?

  27. 27

    使用`__dict__`还是`vars()`?

  28. 28

    字典和对象内部__dict__的大小不同

  29. 29

    CPython-向包含__dict__的新类型添加属性

热门标签

归档