如何在python中将函数分配给变量,然后使用参数调用

如何在python中将函数分配给变量,然后使用参数调用,python,Python,我将函数赋值给一个变量,如下所示: def hello(name): print "Hello %r \n" % name king = hello print "%r, King of Geeks" % king("Arthur") 在终端中,它返回: “亚瑟”你好 没有,极客之王 给出什么?hello()正在打印某些内容,但不返回任何内容。(默认情况下,所有函数都返回None,除非您明确地返回something) 如果让hello()返回文本,而不是打印文本,则会得到预期结果:

我将函数赋值给一个变量,如下所示:

def hello(name):
    print "Hello %r \n" % name

king = hello
print "%r, King of Geeks" % king("Arthur")
在终端中,它返回:

“亚瑟”你好
没有,极客之王

给出什么?

hello()
正在打印某些内容,但不返回任何内容。(默认情况下,所有函数都返回
None
,除非您明确地返回
something)

如果让
hello()
返回文本,而不是打印文本,则会得到预期结果:

def hello(name):
    return "Hello %r \n" % name

king = hello
print "%r, King of Geeks" % king("Arthur")
“你好,亚瑟”\n,极客之王

我建议也使用以下方法代替
%

print "{}, King of Geeks".format(king("Arthur"))
hello()
正在打印某些内容,但未返回任何内容。(默认情况下,所有函数都返回
None
,除非您明确地返回
something)

如果让
hello()
返回文本,而不是打印文本,则会得到预期结果:

def hello(name):
    return "Hello %r \n" % name

king = hello
print "%r, King of Geeks" % king("Arthur")
“你好,亚瑟”\n,极客之王

我建议也使用以下方法代替
%

print "{}, King of Geeks".format(king("Arthur"))

您的
hello
函数是
print
ing它创建的字符串,而不是返回它

然后尝试将调用函数的返回值替换为另一个字符串


因为您的
hello
函数不返回任何内容,它实际上会返回
None
,因此在中会被替换。只需在
hello
函数中将
打印
更改为
返回
,事情就会按预期工作。

您的
hello
函数是
打印它创建的字符串,而不是返回它

然后尝试将调用函数的返回值替换为另一个字符串

因为您的
hello
函数不返回任何内容,它实际上会返回
None
,因此在中会被替换。只要在
hello
函数中将
打印
更改为
返回
,事情就会按预期进行。

您正在打印调用
国王(“亚瑟”)
的结果,该结果是
,因为它不返回值

您正在打印调用
king(“Arthur”)
的结果,该结果为
None
,因为它不返回值

这同样有效

def hello(name):
  print("hello, %s" % name)

king = hello
king("arthur")
输出

hello, arthur
这同样有效

def hello(name):
  print("hello, %s" % name)

king = hello
king("arthur")
输出

hello, arthur

由于没有
return
语句,因此该方法返回
None
,这是您看到的打印内容。您可能不希望使用
%r
,因为它返回对象的
repr
,可能不是您期望的字符串。尝试将其替换为
%s
(在实现下面的建议之后)。由于没有
return
语句,该方法返回
None
,这就是您看到的打印内容。您可能不希望使用
%r
,因为它返回对象的
repr
,并且可能不是您期望的字符串。尝试将其替换为
%s
(在执行以下建议后)。谢谢,这让我明白了一切!谢谢,这让我明白了!