首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Python 2.7的打印输出中没有任何附加内容

Python 2.7的打印输出中没有任何附加内容
EN

Stack Overflow用户
提问于 2016-09-16 17:28:35
回答 3查看 108关注 0票数 0

我试图调用一些在testlib.py中定义的方法,不明白为什么输出中有额外的“无”?谢谢。

代码中调用testlib.py

代码语言:javascript
运行
复制
print testlib.globalFoo()
f = testlib.Foo()
print f.getValue()

testlib.py

代码语言:javascript
运行
复制
class Foo:
    def __init__(self):
        pass
    def getValue(self):
        print 'get value in class Foo'

def globalFoo():
    print 'in global foo'

输出

代码语言:javascript
运行
复制
in global foo
None <= confusion here
get value in class Foo
None <= confusion here
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-09-16 17:31:53

原因是您正在打印一个函数的结果,该函数不返回任何内容,并且只有一个print语句。没有显式返回某些内容的任何函数都将隐式返回None

代码语言:javascript
运行
复制
>>> def say_hello():
...   print 'hello!'
... 
>>> print say_hello()
hello!
None
>>> h = say_hello()
hello!
>>> print h
None
>>> 
票数 2
EN

Stack Overflow用户

发布于 2016-09-16 17:32:51

当您调用print testlib.globalFoo()时,函数本身正在执行打印(特别是“在全局foo中”)。然后,函数不返回任何内容(或None),这就是打印显示的内容。如果您只想打印一次,只需使用testlib.globalFoo()调用该函数,或按如下所示更改该函数。

代码语言:javascript
运行
复制
def globalFoo():
    return "the string you want to print"

对于类中的其他函数,答案是相同的。

票数 1
EN

Stack Overflow用户

发布于 2016-09-16 17:41:01

在globalFoo()函数中:它不仅打印出"in globalFoo“,该函数还返回一个'None‘

代码语言:javascript
运行
复制
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‘。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39537134

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档