Gre*_*reg 3 python function sys argv
我试图将"sys.argv [1]"传递给一个函数.
#!/usr/bin/env/ python
import sys
def main():
test(sys.argv[1])
def test(sys.argv[1]):
print "Hello " + sys.argv[1]
./arg.py World
File "./arg.py", line 5
def test(sys.argv[1]):
^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)
在将Interwebs分散几个小时后,不确定从哪里开始.我也尝试将"sys.argv [1]"设置为一个变量并尝试将其传递给函数但仍然无效.
Har*_*hen 10
我认为你误解了一个函数的声明和调用.在你的程序中,只有声明,缺少调用语句.至于从命令行传递参数,这是一个我更喜欢的例子:
import sys
def hello(v):
print 'hello '+v
def main(args):
hello(args[1])
if __name__ == '__main__':
main(sys.argv)
Run Code Online (Sandbox Code Playgroud)
程序从'if name ==' main ' 行开始执行,调用先前定义的函数并将sys.argv作为参数传递
sys.argv[1] 返回一个字符串,因此您不能将其添加为参数/参数.
我不明白为什么你会需要这个,只是根本没有参数:
def test():
print "Hello " + sys.argv[1]
Run Code Online (Sandbox Code Playgroud)
你可能也混淆了.参数名称不需要与调用函数时使用的名称相同.例如,如果我有n = 5,则该函数不需要调用参数n.它可以是任何东西.
所以你可以这样做:
def test(myargument):
print "Hello " + myargument
Run Code Online (Sandbox Code Playgroud)
我只是给你一个关于参数的快速小"教程".
def myfunc():
print "hello!"
Run Code Online (Sandbox Code Playgroud)
这里我们有一个功能.打电话给我们myfunc(),是吗?当我们执行myfunc()时,它会输出"hello!".
这是另一个功能:
def myfunc(word):
print word
Run Code Online (Sandbox Code Playgroud)
这个函数需要一个参数.因此,当我们调用它时,我们必须添加一个参数.以下是调用函数的示例:
def myfunc(word):
print word
myword = 'cabbage'
myfunc(myword)
Run Code Online (Sandbox Code Playgroud)
注意如何'cabbage'在myword变量中设置.它不是必须是相同的就是我们俗称的函数的参数.事实上,如果需要,我们甚至不必创建变量.我们可以做到myfunc('cabbage').
此外,在此示例中,您只能输入一个参数,因为当我们使用def该函数时,我们只使用了一个参数.如果你加两个,你会得到类似的东西myfunc takes one argument (two given).
我们调用了参数,word因此我们可以在函数中使用它.注意我有print word没有print myword.就像我们做的那样word = myword,但我们使用参数名称而不是这一步.
| 归档时间: |
|
| 查看次数: |
22326 次 |
| 最近记录: |