【问题标题】:How do I set a property in python using its string name [duplicate]如何使用其字符串名称在python中设置属性[重复]
【发布时间】:2010-06-16 13:37:00
【问题描述】:

可能重复:
How do you programmatically set an attribute in Python?

嘿,这是一个愚蠢的问题:如何在字符串中给定对象属性的名称。我有一个字典被传递给我,我希望使用这样的代码将它的值转移到同名属性中:

    for entry in src_dict:
          if entry.startswith('can_'):
              tgt_obj[entry] = src_dict_profile[entry]

我对 Python 还是有点陌生​​,所以希望能得到一些帮助。 - 戴夫。

【问题讨论】:

标签: python


【解决方案1】:
setattr(some_object, 'some_attribute', 42)

【讨论】:

  • 请不要使用分号。 :-D
  • 虽然它没有使用@property.setter 函数...你将如何通过它设置属性?
【解决方案2】:

听起来您正在寻找setattr

例子:

for entry in src_dict:
      if entry.startswith('can_'):
          setattr(tgt_obj, entry, src_dict_profile[entry])

【讨论】:

    【解决方案3】:

    在具有“dict”属性的对象上

    if "__dict__" in dir(obj):
    

    你可以做一些有趣的事情,比如:

    obj.__dict__.update(src_dict)
    

    【讨论】:

      猜你喜欢
      • 2012-05-04
      • 2012-03-13
      • 2020-04-21
      • 2020-11-15
      相关资源
      最近更新 更多