看哪,我的簡單的類:我怎麼能動態地引用變量在Python
import sys
class Foo(object):
def __init__(self):
self.frontend_attrs = ['name','ip_address','mode','port','max_conn']
self.backend_attrs = ['name','balance_method','balance_mode']
init方法上面創建了兩個名單,我想動態是指他們兩個:
def sanity_check_data(self):
self.check_section('frontend')
self.check_section('backend')
def check_section(self, section):
# HERE IS THE DYNAMIC REFERENCE
for attr in ("self.%s_attrs" % section):
print attr
但當我這樣做時,python會抱怨("self.%s_attrs" % section)
的調用。
我讀過有關使用get_attr
動態發現模塊人...
getattr(sys.modules[__name__], "%s_attrs" % section)()
可這對詞典進行。
你想'GETATTR(自我,「{} _attrs」 .format(section))' – dano 2014-10-02 15:51:22
真的,你不應該把數據保存在變量名中。這只是要求麻煩。你應該將這兩本字典保存在另一個結構中,甚至可以是另一本字典。 – TheSoundDefense 2014-10-02 15:52:23
謝謝@TheSoundDefense的建議,我會把它帶上船! – stephenmurdoch 2014-10-02 15:59:05