标签: python python-3.x
我有许多常量,这些变量中我保留名字。
ATTR_ITEM_NAME = 'pro'
我检查属性是否附加到对象:
if hasattr(obj1, ATTR_ITEM_NAME):
然后如果存在,我希望将属性值传递给对象的属性,如下所示:
obj2.fm = obj1.ATTR_ITEM_NAME
ATTR_ITEM_NAME是字符串而不是属性是错误,我需要一些有效的方法;
答案 0 :(得分:4)
Python也有getattr,其作用类似于hasattr,但返回值:
getattr
hasattr
obj2.fm = getattr(obj1, ATTR_ITEM_NAME)
如果不确定该属性是否存在,则可以:
分配默认值(例如None)
None
DEFAULT = None obj2.fm = getattr(obj1, ATTR_ITEM_NAME, DEFAULT)
或使用
try: obj2.fm = getattr(obj1, ATTR_ITEM_NAME) except AttributeError: pass # or do something else...