7
我想知道是否有可能动态地添加字段到对象。举例来说,我希望能够加入这样的:Python:动态添加字段到对象
user = object()
user.first_name = 'John'
user.last_name = 'Smith'
当我执行的是Python命令行解释器,我得到:
AttributeError: 'object' object has no attribute 'first_name'
任何想法?
谢谢你,为我工作。我有两个问题1)'pass'关键字在这里意味着什么? 2)如果我的代码中有Object()的另一个实例obj2,obj.x是否会创建obj2.x(带有一些未定义的值)? – Rafid 2010-12-14 19:39:41
1)关于'pass':http://docs.python.org/tutorial/controlflow.html#pass-statements 2)不,当你做'obj.x = 5'时,你只需要添加'x'属性到Object的单个实例。如果你想要所有的'Object'实例共享x,你必须做'Object.x = 5'。 – gruszczy 2010-12-14 19:43:00
在Python中没有未定义的值 - 它最接近的是None。以gruszczy的方式创建的对象没有任何一种“原型”;您可以随意添加和删除属性,并且不会影响Object类的任何其他实例。 – 2010-12-14 19:52:41