4

我知道这一定是一个超级基本的问题,但是,我尝试在整个 SO 中找到一个简单的答案,但找不到。

所以我的问题是:如何从命令行执行 python 脚本,以便我可以看到打印语句。

例如,假设我有文件 test.py:

def hello():
    print "hello"

如果我进入解释器,导入 test.py,然后调用 test.hello(),一切正常。但是,我希望能够运行

python test.py

从命令行并让它打印“你好”到终端。

我该怎么做呢?

谢谢!

更新:是的,对不起,我的脚本实际上更像这样:

def main():
    hello()

def hello():
    print "hello"

我还需要调用 main(),还是自动调用它?

4

4 回答 4

9

在文件末尾添加:

if __name__ == '__main__':
    hello()
于 2013-03-21T20:05:38.293 回答
3

您的print语句包含在函数定义块中。您需要调用该函数才能执行它:

def hello():
    print "hello"

if __name__ == '__main__':
    hello()

基本上这是说“如果此文件是主文件(已从命令行调用),则运行此代码。”

于 2013-03-21T20:06:43.297 回答
2

您必须让脚本实际调用您的方法。通常,您可以使用if __name__ == "__main__":块来执行此操作。

或者,您可以使用-c解释器的参数从 cli 显式导入和运行您的模块,但这将要求脚本位于您的 python 路径上,并且也将是不好的样式,因为您现在已经在外部执行 Python 代码Python 模块。

于 2013-03-21T20:05:44.457 回答
0

据我了解,您的文件只有以下几行:

def hello():
    print "hello"

定义是正确的,但是你什么时候“调用”这个函数呢?

您的文件应包含对该hello()函数的调用:

def hello():
    print "hello"

hello()

这样,函数在单个文件中定义和调用。

这是一种非常“类似脚本”的方法......它有效,但必须有更好的方法来做到这一点

于 2013-03-21T20:06:37.193 回答