-1
我有幾個類在代碼上導入,但我只需要實例化文本文件中列出的那些類。所以,我有這樣的事情Python:從具有參數的文件中的字符串實例化一個類
from module1 import c1
from module2 import c2
...
,並在文本文件中我只有我想要實例像
c1()
c2(True)
...
所以我想讀取的文件行的列表(這些類的列表類)並做類似
for i in classes:
classes_list.append(i)
以便列表中的每個元素都是一個實例化的類。我試着這樣做基於其他的解決方案,我發現這裏
for i in classes:
classes_list.append(globals()[i])
,但我總是得到這個錯誤
KeyError: 'c1()'
或
KeyError: 'c2(True)'
任何想法如何這樣的可能呢?
有沒有你不想要使用的理由[' pickle'](HTTPS://docs.p ython.org/3/library/pickle.html)而不是這個奇怪的文本格式? – Kevin
不是真的,任何工作對我來說都很好。唯一的要求是需要從文本文件中讀取班級列表,因爲其他人將定義他們想要使用的班級,並且我無法知道他們會選擇哪些班級。另外,人們可能希望c2的True或False作爲參數,我也無法知道 – Atirag
這些線條有多複雜? 'c2(真)'好吧我可以有真/假。我可以有多個參數嗎?整型?數學如何(例如'c2(1 + 3)')?你正在這裏定義一個迷你語言,這可能會變得困難。你可以爲文件中的每一行做'eval(line)',這樣用戶就可以添加完整的python表達式,比如調用多個函數'c2(c1())'。 – tdelaney