簡體   English   中英

知道名稱,獲取obj屬性的值

[英]Get the value of an obj attribute knowing its name

我有許多常量,其中的變量都保留名字。

ATTR_ITEM_NAME = 'pro'

我檢查屬性是否附加到對象:

 if hasattr(obj1, ATTR_ITEM_NAME):

那么如果存在,我希望將屬性值傳遞給對象的屬性,如下所示:

obj2.fm = obj1.ATTR_ITEM_NAME

ATTR_ITEM_NAME是字符串而不是屬性是錯誤,我需要一些有效的方法;

Python也有getattr ,它類似於hasattr但返回值:

obj2.fm = getattr(obj1, ATTR_ITEM_NAME)

如果不確定該屬性是否存在,則可以:

  • 分配一個默認值(例如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... 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM