例如,假设我有一个名为myscript.py的文件
此文件包含以下代码。
foo(var):
return var
如何在命令行上使用参数var调用函数foo。
我知道我可以转到myscript.py所在的目录并输入。
>>> python myscript.py
将运行myscript.py。唯一的问题是myscript.py在运行时不会自动调用foo。
我尝试过使用
if __name__ == "__main__":
foo( )
这对我不起作用。出于某种原因,当我这样做时,没有任何反应我没有收到任何错误消息,也没有任何内容被调用。
答案 0 :(得分:2)
您没有获得任何输出,因为您没有生成任何输出。尝试拨打print
:
def foo(var):
print(var)
if __name__ == '__main__':
foo('Hello, world')
答案 1 :(得分:0)
您必须使用sys
模块从命令行传递参数。
你可以这样做:
import sys
def foo(var):
return var
if __name__ == '__main__':
# arguments check
if len(sys.argv) != 2:
print "USAGE: %s <value>" % sys.argv[0]
sys.exit(1)
# get the agument so as to use it to the function call
arg = sys.argv[1]
# call the function using this argument
val = foo(arg)
# print the returned value
print val
然后你可以通过这个命令运行你的python脚本:
python myscript.py 3
作为论据给出例如3号