我剛剛完成了教程製作流氓樣的比賽,我對我的方式來實現freatures。多個文件相互依賴處理 - Python的
問題是,整個遊戲是具有1K +線的單個文件。
正如你可以看到:
我想將它劃分在不同的文件/文件夾來處理器具better.Maybe的遊戲像圖/播放/籌備的各個方面的文件/項目...但至少分爲類/函數/主。
的問題是,當我把這個在Main.py:
from Classes import *
from Functions import *
我得到
NameError: name 'libtcod' is not defined
這是主要使用的模塊。 然後我試圖導入Main.py在Classes.py和Functions.py
,並獲得
NameError: global name 'MAP_WIDTH' is not defined
地圖寬度是一個全局變量在Main.py
我也試着導入整個Main.py在Classes.py和Functions.py
,但我得到:
NameError: name 'Fighter' is not defined
戰鬥機裏面Classes.py
一類誰能幫我排序了這一點,所以我就可以開始實施freatures。
編輯:一個簡單的例子是:
Main.py
from Functions import *
def plus_one(ab):
return ab +1
a = 1
b = 2
c = add_things()
print plus_one(c)
Functions.py
from Main import *
def add_things():
global a,b
return a + b
這是一個簡單的例子,但在該項目就得到了很多的相互類/函數和主文件之間的依賴關係。
如果您在Classes.py或Functions.py中使用libtcod,那麼您需要將它導入到這些模塊中,就像您當前將其導入到Main.py中一樣。 –
我做了,我得到了一個班的NameError。 –
我的建議是你讀了一本書/用Python做面向對象編程的教程。例如,Beginning Python:從新手到專業by Magnus Lie Hetland是一個好的開始。 –