2016-12-14 76 views
0

基本上我在製作一個塔防遊戲,我有一個名爲enemy.py的python文件,裏面有一個圓形,我有一個名爲main.py的文件,它是圓形的結尾屏幕。我希望main.py在每一輪完成後執行enemy.py,但它會在第二次給我一個錯誤。我正在使用導入功能來打開其他文件。另外可以有人幫我做到這一點,錯誤不是那麼大,我很困惑!多次從文件中運行一個python文件

Traceback (most recent call last): 
    File "H:\ICT\A level\Computing\Tower Defense Code\main.py", line 62, in <module> 
    createMenu() 
    File "H:\ICT\A level\Computing\Tower Defense Code\main.py", line 9, in  createMenu 
    newRound() 
    File "H:\ICT\A level\Computing\Tower Defense Code\main.py", line 23, in  newRound 
    cancelLoop() 
    File "H:\ICT\A level\Computing\Tower Defense Code\main.py", line 38, in  cancelLoop 
    startRound() 
    File "H:\ICT\A level\Computing\Tower Defense Code\main.py", line 41, in  startRound 
    import enemy.py 
    File "H:\ICT\A level\Computing\Tower Defense Code\enemy.py", line 107, in  <module> 
    enemy.draw(screen) 
    File "H:\ICT\A level\Computing\Tower Defense Code\enemy.py", line 35, in  draw 
    life(self) 
    File "H:\ICT\A level\Computing\Tower Defense Code\enemy.py", line 55, in  life 
    import main.py 
    File "H:\ICT\A level\Computing\Tower Defense Code\main.py", line 62, in  <module> 
    createMenu() 
    File "H:\ICT\A level\Computing\Tower Defense Code\main.py", line 9, in  createMenu 
    newRound() 
    File "H:\ICT\A level\Computing\Tower Defense Code\main.py", line 23, in  newRound 
    cancelLoop() 
    File "H:\ICT\A level\Computing\Tower Defense Code\main.py", line 38, in  cancelLoop 
    startRound() 
    File "H:\ICT\A level\Computing\Tower Defense Code\main.py", line 41, in startRound 
    import enemy.py 
ImportError: No module named 'enemy.py'; 'enemy' is not a package 

+1

請出示最小工作/失敗的示例代碼 - 看起來將是有益的也擡起頭蟒蛇進口只在第一次如何? – Dilettant

+1

你只需要導入一次。你輸入'import enemy'而不是'import enemy.py' –

回答

4

首次下降.py文件後綴。語法就是:

import enemy 

這將在enemy.py運行所有的代碼(假設enemy.py位於素有到Python的路徑)。

如果你想重複這一過程,使用的命令是:

reload(enemy) 

這並不是雖然使用一個模塊的好方法。你是去創建內部敵人的功能,並直接調用它更好:

import enemy 
enemy.enemy() 
+0

非常感謝你對此非常有幫助 –