如何将函数赋值给变量然后使用python中的参数调用

时间:2013-01-08 05:18:05

标签: python

我正在为一个变量分配一个函数,如下所示:

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

king = hello
print "%r, King of Geeks" % king("Arthur")

在终端中它返回:

你好'亚瑟' 没有,极客之王

是什么给出了?

4 个答案:

答案 0 :(得分:8)

hello()正在打印,但返回None。 (除非您明确None某事)

,否则所有函数默认返回return
>>> result = hello('test')
Hello 'test' 

>>> print result
None

如果你让hello()返回文字而不是打印文字,你就会得到预期的结果:

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

king = hello
print "%r, King of Geeks" % king("Arthur")
  

“你好'亚瑟'\ n”,极客之王

我建议您使用New String Formatting代替%

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

答案 1 :(得分:1)

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

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

由于您的hello函数未返回任何内容,因此它会有效地返回None,因此可以替换为什么。只需将print更改为return内部您的hello功能和事情将按预期工作。

答案 2 :(得分:0)

您正在打算king("Arthur")的{​​em>结果,None,因为它没有返回值。

答案 3 :(得分:0)

这也有效

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

king = hello
king("arthur")

输出

hello, arthur