setattr 与 kwargs,pythonic 与否?
问题描述
我在一些具有许多参数(最多 20 个)的 SQLAlchemy ORM 类中使用像这样的 __init__()
.
I'm using __init__()
like this in some SQLAlchemy ORM classes that have many parameters (upto 20).
def __init__(self, **kwargs):
for k, v in kwargs.iteritems():
setattr(self, k, v)
这样设置属性是pythonic"吗?
Is it "pythonic" to set attributes like this?
解决方案
是的.另一种方法是.
def __init__(self, **kwargs):
self.__dict__.update( kwargs )
相关文章