[英]Modifying and running function within a for loop Python
我正在嘗試運行 3 個不同的函數,其形式為 {}.result()。 如何使用 getarr 或另一個 function 以便所有 3 個函數都在 for 循環中運行。
values = ["RSI", "MACD","ROCR"]
for k in values:
result= getattr(k).result()
運行:
RSI.result()
MACD.result()
ROCR.result()
與其將對象的名稱放在一個列表中,不如將實際的 object 放在一個列表中(實際上是一個元組)?
for i in (RSI, MACD, ROCR):
print(i.result())
class Values:
RSI = 1
MACD = 2
ROCR = 3
values = Values()
names = ["RSI","MACD","ROCR"]
for i in names:
print(getattr(values, i))
OUTPUT: 1 2 3
您將無法在您的列表中調用 getattr,因為 getattr 從您的 object 獲取命名屬性,該屬性與上面代碼定義的 values.RSI 等效。 否則你會得到TypeError: getattr(): attribute name must be string
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.