2

我只是在学习 python,很抱歉这可能是一个简单的问题。

按照 Zed Shaw 的“以艰难的方式学习 Python”,我制作了一个小文本游戏 (ex36)。它定义了函数 start() 和 litroom(),然后运行 ​​start(),后者又根据用户输入运行 litroom()。

如何仅将 litroom() 函数导入另一个文件?如果我尝试

from ex36 import litroom

它似乎导入了很多并运行 start()。

谢谢你的帮助!

4

1 回答 1

2

当您从 ex36 导入时,它将读取整个文件并执行不在函数内部的任何代码。

如果你有

def start():
   print ("hello")
def litroom():
   start()
start()

在您的ex36文件中,您的语句import ex36from ex36 import litroom将执行开始。您应该像这样修复代码:

def start():
   print ("hello")
def litroom():
   start()

if __name__=='__main__':
   # magix trick : name value is the name of the file 
   # unless run as the "main" script where it's __main__
   start()

你可以看到if __name__ == "__main__": 做什么?

于 2013-11-06T18:24:01.413 回答