1
我想創建一個支持嵌套屬性的自定義對象。是否有可能在python中捕獲空的嵌套屬性?
我需要實現一種特定類型的搜索。
如果一個屬性不存在於最低級別,我想遞歸併查看屬性是否存在於更高級別。
我花了整整一天的時間嘗試做到這一點。我來的最近的是能夠打印屬性搜索路徑。
class MyDict(dict):
def __init__(self):
super(MyDict, self).__init__()
def __getattr__(self, name):
return self.__getitem__(name)
def __getitem__(self, name):
if name not in self:
print name
self[name] = MyDict()
return super(MyDict, self).__getitem__(name)
config = MyDict()
config.important_key = 'important_value'
print 'important key is: ', config.important_key
print config.random.path.to.important_key
輸出:
important key is: important_value
random
path
to
important_key
{}
我需要發生的是,而不是看是否important_key
存在於最低水平(config.random.path.to
),然後去了一個級別(config.random.path
),如果只返回None
不存在於頂層。
你認爲這是可能的嗎?
非常感謝!
這很有趣 - 謝謝!我認爲這是它可能在python中完成的唯一方法。可以使用autogen(例如jinja2)創建這樣一個具有嵌套屬性的類,然後可以像這樣遞歸。我認爲這是不可能的。 – lifer