我是編程新手,我正在做一個小遊戲作爲練習。我想要實現的一點是將字符的屬性作爲變量保存在可執行文件.py文件中,然後將其作爲模塊導入以使用這些變量。使模塊名稱成爲一個變量
問題是,我不想硬編碼savefiles的名字(所以爲了讓玩家自由選擇一個保存文件的名字並且有多個保存文件沒有它們相互覆蓋)。
那麼有沒有辦法讓模塊名稱變成一個變量?或者也許有更簡單的方法來解決這個問題。
我是編程新手,我正在做一個小遊戲作爲練習。我想要實現的一點是將字符的屬性作爲變量保存在可執行文件.py文件中,然後將其作爲模塊導入以使用這些變量。使模塊名稱成爲一個變量
問題是,我不想硬編碼savefiles的名字(所以爲了讓玩家自由選擇一個保存文件的名字並且有多個保存文件沒有它們相互覆蓋)。
那麼有沒有辦法讓模塊名稱變成一個變量?或者也許有更簡單的方法來解決這個問題。
import importlib
module = importlib.import_module(module_name, package=None)
其中module_name
將是變量。
如果我正確理解你的問題 - 你想存儲一個字符的屬性,並希望能夠在以後檢索它們是正確的嗎?
要做的方法是使用pickle。您可以在哪裏序列化一個對象並將其存儲到一個文件中,然後再次加載它。例如。如果你已經這些屬性的字典 - 你可以這樣做以下
import pickle
x = pickle.dumps({'speed':100, 'agility':200})
char = pickle.loads(x)
注:所有的對象都沒有「pickle'able - 閱讀上述文件。
至於你原來的問題 - 是一個模塊,可以如下
import BeautifulSoup as bs4
或
import BeautifulSoup
bs4 = BeautifulSoup
歸結爲只是一個變量,但我不認爲這就是您特別對於。
希望有所幫助。
嘿!謝謝你的建議。在我可以進行酸洗之前,我必須多學習一下Python,因爲當我嘗試閱讀pickle doc時,我只是感到不知所措,無法理解。 但至少現在我知道該找什麼了!再次感謝 – Shadylamp
您可能想要使用實際的序列化機制將值保存到磁盤,而不是嘗試寫出可執行的Python文件。也許['json'](https://docs.python.org/library/json.html)庫可以提供幫助? 'json.dump(my_dict,file_obj)'將名爲'my_dict'的字典的內容保存到名爲'file_obj'的文件對象(從'open()')中,然後你可以用'json .load(file_obj)'。 – Amber
謝謝!我需要研究json,但它看起來像是一個非常可行的選擇。 – Shadylamp