我试图调用一些在testlib.py中定义的方法,不明白为什么输出中有额外的“无”?谢谢。
在代码中调用testlib.py
print testlib.globalFoo()
f = testlib.Foo()
print f.getValue()testlib.py
class Foo:
def __init__(self):
pass
def getValue(self):
print 'get value in class Foo'
def globalFoo():
print 'in global foo'输出
in global foo
None <= confusion here
get value in class Foo
None <= confusion here发布于 2016-09-16 17:31:53
原因是您正在打印一个函数的结果,该函数不返回任何内容,并且只有一个print语句。没有显式返回某些内容的任何函数都将隐式返回None。
>>> def say_hello():
... print 'hello!'
...
>>> print say_hello()
hello!
None
>>> h = say_hello()
hello!
>>> print h
None
>>> 发布于 2016-09-16 17:32:51
当您调用print testlib.globalFoo()时,函数本身正在执行打印(特别是“在全局foo中”)。然后,函数不返回任何内容(或None),这就是打印显示的内容。如果您只想打印一次,只需使用testlib.globalFoo()调用该函数,或按如下所示更改该函数。
def globalFoo():
return "the string you want to print"对于类中的其他函数,答案是相同的。
发布于 2016-09-16 17:41:01
在globalFoo()函数中:它不仅打印出"in globalFoo“,该函数还返回一个'None‘
This returned value of None is supplied to your print statement:
print testlib.globalFoo() is actually:
print 'None'
when you call testlib.globalFoo(), within the function, it correctly prints 'in global foo'.另一个none类似于返回的getValue()值,后者返回'None‘。
https://stackoverflow.com/questions/39537134
复制相似问题