Jos*_*ogi 5 python metaprogramming
对不起,如果之前有人询问过.是否可以在Python中动态创建类,其中属性未在__init__类的方法中定义.
例如,这个类
class Person(object):
def __init__(self):
...
Run Code Online (Sandbox Code Playgroud)
我可以在初始化期间动态地输入属性,如下所示:
person = Person(name='Joe')
并像这样访问它:
person.name
>>> Joe
Run Code Online (Sandbox Code Playgroud)
谢谢
Sve*_*ach 14
最简单的方法是将关键字参数dict分配给__dict__类的属性:
class Person(object):
def __init__(self, **kw):
self.__dict__ = kw
person = Person(name='Joe')
print person.name
Run Code Online (Sandbox Code Playgroud)
版画
Joe
Run Code Online (Sandbox Code Playgroud)
要在创建对象后添加属性,请使用
def add_attributes(self, **kw):
self.__dict__.update(kw)
Run Code Online (Sandbox Code Playgroud)
您也可以.update()在构造函数中使用.
| 归档时间: |
|
| 查看次数: |
2116 次 |
| 最近记录: |