![](/img/trans.png)
[英]How to extract a word from a string and assign it to a variable in Python 3.7?
[英]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.