python - 通过 init kwargs 向对象添加属性
问题描述
class Obj:
def __init__(self, **kw):
# code
obj = Obj(a=5, b=10)
print(obj.a, obj.b) # 5 10
这项任务是否有经过验证的解决方案?
解决方案
您可以执行以下操作来分配传入的属性**kw
:
class Obj:
def __init__(self, **kw):
# in case of python 2, the following line is: for k, v in kw.iteritems():
for k, v in kw.items():
setattr(self, k, v)
然后使用您在帖子中提到的方式:
obj = Obj(a=5, b=10)
print(obj.a, obj.b) # 5 10
推荐阅读
- node.js - NodeJS - 处理内存数据的最佳实践?
- java - Spring IntegrationFlow imapInboundAdapter 在 getFolder 上获取 NullPointerException
- flutter - 断言失败:第 482 行 pos 12:'crossAxisExtent > 0.0':不正确
- flutter - youtube_explode_dart 包有错误的文档
- javascript - React.js 定位对象中的值
- typescript - 如何在 NextJS + TypeScript 设置中为 node_module 起别名?
- python - Python - 仅从文件夹中复制今天的照片
- node.js - MongoDB游标导致我的函数跳过步骤
- visual-studio-code - 类似 VSCode 的 Visual Studio 解决方案资源管理器体验
- nginx - 添加域以生成 certbot 的 nginx conf 中未提及的 SSL 证书