簡體   English   中英

如何從作為變量 3.7 一部分的字符串中引用 class

[英]How to reference a class from a string which is part of a variable 3.7

我剛剛閱讀了一個文本文件並提取了一個字符串並將其存儲為一個變量。 這個字符串也恰好是我想引用的 class 的名稱,以便在 function 中使用。 “which_class”變量是存儲在文件中的 class

我嘗試將 which_class 變量作為參數傳遞給 function。 刪除引號似乎使它起作用,但我不確定如何做到這一點。

class needed_for_func_one():
    multiplier = 1.23

class needed_for_func_two():
    multiplier = 1.15


def random_function(which_class):
    print(123 * which_class.multiplier)

PSEUDO CODE
READ FROM FILE STORE STRING AS "which_class"

which_class = "needed_for_func_two"


random_function(which_class)

但這不起作用,它只是給了我一個屬性錯誤

eval function 可以在這里為您提供幫助。

random_function(eval(whichClass))

但是,您可能應該重新考慮是否真的要那樣做,或者是否有更清潔的解決方案。

我認為您的問題與有關您如何調用 function 取決於它是全局 function 還是在 object 內部。

globals()['call_this_function']() # this is probably what you need

或者

getattr(from_this_object, 'call_this_function')()

首先,要使用 class,您需要 class 的 object。 因此,如果您閱讀的是 class 的名稱或任何其他無關緊要的東西,只需使用 if 語句來確定該變量中的內容,即所謂的“which_class”。 然后創建一個 object 像:

if which_class=="needed_for_func_one":
    newObject = needed_for_func_one()
elseif which_class=="needed_for_func_two":
    newObject = needed_for_func_two()

然后使用像這樣的打印:

print(123 * newObject.multiplier )

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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