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

Python 调用对象名会返回输出,但调用实际函数名不会给出输出。为什么?,python,python-2.7,Python,Python 2.7,每当我用函数名调用函数时,它都会给出地址位置,但如果我将其分配给新对象,则用新对象名调用会给出正确的输出 def is_called(): def is_returned(): print("Hello") return is_returned new = is_called() new() #Outputs "Hello" 但是当我只调用函数名时,我没有得到任何输出 我不熟悉Python/编程语言。调用is\u called会返回一个函数对象,因此要调用被调用的函

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

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

new = is_called()

new()     #Outputs "Hello"
但是当我只调用函数名时,我没有得到任何输出

我不熟悉Python/编程语言。

调用is\u called会返回一个函数对象,因此要调用被调用的函数,应该使用另一组括号:

is_called()()

您正在返回一个函数。在Python中,函数是第一类对象,这意味着它们是对象。如果你想用你当前的代码打招呼,你必须打电话

is_called()()
因为您返回的是函数对象,而不是函数的结果

您还可以修复被调用返回的问题

is_returned()


压痕不清晰。Return语句不合适。另外,如果你能用降价的方式设置一些格式,那就太好了——例如,最后一行的第二行不清楚。您调用了什么没有返回任何内容?如果您是python新手,那么这段代码是从哪里获得的?
def is_called():
    def is_returned():
        print("Hello")
    return is_returned

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

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