在Python中的打印功能中打印功能

Vis*_*agi 2 python

我的问题是下面的代码为什么没有得到打印代替函数输出以及为什么函数输出在它的位置之前.

def print_spam():
    print('spam')


def do_twice(r,ps):
    g  = ps()
    print(r,'is a',g)
    print(r,'is a',ps())

do_twice('xyz',print_spam)
Run Code Online (Sandbox Code Playgroud)

输出是

spam
xyz is a None
spam
xyz is a None
Run Code Online (Sandbox Code Playgroud)

Ter*_*ryA 11

该功能print_spam()没有return任何意义.这只是print一个声明.

将其更改为:

def print_spam():
    print('spam')
    return 'spam'
Run Code Online (Sandbox Code Playgroud)

因为你的函数没有返回任何东西,所以默认为None.现在,在分配函数输出时g,它将包含函数(spam)的返回字符串.