首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从命令行执行Python脚本会隐藏打印语句

从命令行执行Python脚本会隐藏打印语句
EN

Stack Overflow用户
提问于 2013-03-22 04:03:54
回答 4查看 13.9K关注 0票数 4

我知道这肯定是一个非常基本的问题,然而,我一直在尝试寻找一个简单的答案,但找不到一个。

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

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

代码语言:javascript
运行
复制
def hello():
    print "hello"

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

代码语言:javascript
运行
复制
python test.py

在命令行中,让它向终端输出"hello“。

我该怎么做呢?

谢谢!

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

代码语言:javascript
运行
复制
def main():
    hello()

def hello():
    print "hello"

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

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-03-22 04:05:38

在文件末尾添加:

代码语言:javascript
运行
复制
if __name__ == '__main__':
    hello()
票数 8
EN

Stack Overflow用户

发布于 2013-03-22 04:06:43

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

代码语言:javascript
运行
复制
def hello():
    print "hello"

if __name__ == '__main__':
    hello()

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

票数 3
EN

Stack Overflow用户

发布于 2013-03-22 04:05:44

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

或者,您可以使用解释器的-c参数来显式地从cli导入和运行您的模块,但这将要求脚本位于您的python路径上,而且这也是一种糟糕的风格,因为您现在已经在Python模块之外执行Python代码。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15556967

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档