我可以通過組合字符串來調用一個方法來處理數據嗎?如何通過Python中的字符串調用方法?
例如,它是確定在代碼中輸入「data.image.truecolor()」,
data.image.truecolor() # This line is successful to call method
我的問題是:如果我有一個數據對象命名的數據(不是字符串),如何結合「.image.truecolor」刺激來調用方法來處理數據?
它是這樣的:
result=getattr(data,".image.truecolor")
result() # which is equivalent to the code above
當然,這是失敗的。我有一個AttributeError。
因爲有許多方法來處理數據,例如:
data.image.fog()
data.image.ir108()
data.image.dnb()
data.image.overview()
# .... and other many methods
它是愚蠢和難看手工鍵入代碼,是嗎?
通過這個原因,我希望我可以使用此代碼:
methods=["fog","ir108","dnb","overview"]
for method in methods:
method=".image"+method
result=getattr(data,method) # to call method to process the data
result() # to get the data processed
是否有可能通過這種方式呢?
感謝您的任何幫助。
謝謝,但這種方式並不成功。由於最終的數據由許多不同的類(包括不同的模塊)處理,我仍然通過dataImage = data.image得到一個AttributeError。但是,我知道如何通過你的幫助來做到這一點。謝謝。 – Makoto
對不起.......現在它成功了!因爲我使用「data = data.image」,通過Python的gabarge集合來節省內存空間(我的計算機有16GB,它仍然不夠),它是錯誤的,所以我猜它也未能分配給不同的變量。但是,我嘗試dataImage = data.image,它是成功的!謝謝! – Makoto