相关疑难解决方法(0)

如何创建对象并向其添加属性?

我想在Python中创建一个动态对象(在另一个对象内),然后为其添加属性.

我试过了:

obj = someobject
obj.a = object()
setattr(obj.a, 'somefield', 'somevalue')
Run Code Online (Sandbox Code Playgroud)

但这没用.

有任何想法吗?

编辑:

我从for循环中设置属性,循环遍历值列表,例如

params = ['attr1', 'attr2', 'attr3']
obj = someobject
obj.a = object()

for p in params:
   obj.a.p # where p comes from for loop variable
Run Code Online (Sandbox Code Playgroud)

在上面的例子中,我会得到obj.a.attr1,obj.a.attr2,obj.a.attr3.

我使用了这个setattr函数因为我不知道怎么做obj.a.NAME一个for循环.

如何根据p上面示例中的值设置属性?

python attributes class object

279
推荐指数
9
解决办法
30万
查看次数

Python:动态地向对象添加字段

我想知道是否可以动态地向对象添加字段.例如,我希望能够添加如下内容:

user = object()
user.first_name = 'John'
user.last_name = 'Smith'
Run Code Online (Sandbox Code Playgroud)

当我在Python命令行解释器中执行它时,我得到:

AttributeError: 'object' object has no attribute 'first_name'
Run Code Online (Sandbox Code Playgroud)

任何的想法?

python metaprogramming

10
推荐指数
2
解决办法
1万
查看次数

标签 统计

python ×2

attributes ×1

class ×1

metaprogramming ×1

object ×1