簡體   English   中英

在 for 循環 Python 中修改和運行 function

[英]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.

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