我想将所有argv参数传递给函数。我已创建此代码,但它给了我一个错误。怎么知道如何使这项工作?非常感谢你的帮助。
if __name__ == "__main__":
import sys
createP(sys.argv[1:])
def createP( a, b, c):
print a + b + c
我使用命令行运行此应用程序:
python filename.py d e f
回归:
NameError: name 'createP' is not defined
答案 0 :(得分:4)
在定义之前,您正在调用createP
。你也传递了错误数量的论点;你需要扩展数组:
def createP( a, b, c):
print a + b + c
if __name__ == "__main__":
import sys
createP(*sys.argv[1:])
答案 1 :(得分:1)
尝试在定义和if
之间切换顺序。
答案 2 :(得分:1)
如前所述,您必须按顺序反转。
要显示 argv 的可变长度,您应该写:
def createP(*x):
print '\n'.join(x)
# or ' '.join(x) if you prefer
if __name__ == "__main__":
import sys
createP(*sys.argv[1:])
我认为 sys.argv 的所有元素都是字符串。我是对的吗?
好吧,我的答案有点愚蠢;为什么下面的代码(没有*用于传递参数和参数的定义)不方便? :
def createP(x):
print '\n'.join(x)
# or ' '.join(x) if you prefer
if __name__ == "__main__":
import sys
createP(sys.argv[1:])