创建动态定义属性的Python类

创建动态定义属性的Python类,python,metaprogramming,Python,Metaprogramming,对不起,如果以前有人问过这个问题。在类的\uuuu init\uuuu方法中未定义属性的情况下,是否可以在Python中动态创建类 比如这个类 class Person(object): def __init__(self): ... 我可以在初始化过程中动态地放入属性,如下所示: person.name >>> Joe person=person(name='Joe') 然后像这样访问它: person.name >>> Joe 谢谢最简单

对不起,如果以前有人问过这个问题。在类的
\uuuu init\uuuu
方法中未定义属性的情况下,是否可以在Python中动态创建类

比如这个类

class Person(object):
  def __init__(self):
    ...
我可以在初始化过程中动态地放入属性,如下所示:

person.name
>>> Joe
person=person(name='Joe')

然后像这样访问它:

person.name
>>> Joe

谢谢

最简单的方法是将关键字参数dict指定给类的
\uuu dict\uuu
属性:

class Person(object):
    def __init__(self, **kw):
        self.__dict__ = kw
person = Person(name='Joe')
print person.name
印刷品

Joe
要在对象创建后添加属性,请使用

def add_attributes(self, **kw):
    self.__dict__.update(kw)

您还可以在构造函数中使用
.update()

这可以通过使用()实现。这还允许您在创建对象后添加属性