调用对象名称将返回输出,但调用实际函数名称不会给出输出。为什么?

时间:2018-10-15 05:15:05

标签: python python-2.7

每当我使用名称调用函数时,它都会给出地址位置,但是如果我将其分配给新对象,则使用新对象名称进行调用会给出正确的输出。

def is_called():
  def is_returned():
    print("Hello")
  return is_returned

new = is_called()

new()     #Outputs "Hello"

但是当我仅使用函数名称is_called()进行调用时,没有任何输出。

我是Python /编程语言的新手。

3 个答案:

答案 0 :(得分:1)

调用is_called返回一个函数对象,因此要调用is_called返回的函数,您应该使用另一组括号:

is_called()()

答案 1 :(得分:0)

您要返回一个函数。在Python中,函数是“一流的对象”,这意味着它们是对象。如果您想使用当前代码获取“ Hello”,则必须致电

is_called()()

因为返回的是函数对象,而不是函数的结果。

您还可以修复is_drawn()返回

is_returned()

答案 2 :(得分:0)

def is_called():
    def is_returned():
        print("Hello")
    return is_returned

new = is_called()
new() ## Important Line 

OR

def is_called():
    def is_returned():
        print("Hello")
    return is_returned() ## Important Line 

is_called()
#OR
new = is_called ## Important Line
new()