2010-10-17 57 views
12

这是我学习python的第一天。所以对你们中的许多人来说这是一个白费问题。请看下面的代码:打印命令行参数时额外输出无效

#!/usr/bin/env python 

import sys 

def hello(name): 
    name = name + '!!!!' 
    print 'hello', name 

def main(): 
    print hello(sys.argv[1]) 


if __name__ == '__main__': 
    main() 

当我运行它

$ ./Python-1.py alice 
hello alice!!!! 
None 

现在,我有这个地方从"None"麻烦来理解?

回答

21

计算代码中的print语句的数量。您将看到您在hello函数中打印"hello alice!!!"打印hello函数的结果。因为hello函数没有返回一个值(你会用return语句来做),所以它最终返回对象None。在main函数中您的print结束打印None

+0

非常感谢您的快速反应和详细的解释。我已经明白你的意思了。 – CuriousMind 2010-10-17 12:55:07

4

更改

def main(): 
    print hello(sys.argv[1]) 

def main(): 
    hello(sys.argv[1]) 

你被明确打印从hello方法的返回值。由于您没有指定返回值,因此它会返回None,这是您在输出中看到的内容。

+0

非常感谢! – CuriousMind 2010-10-17 17:36:39