setattr 与 kwargs,pythonic 与否?

2022-01-18 00:00:00 python initialization

问题描述

我在一些具有许多参数(最多 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 )

相关文章