def myfunc():
print("hello")
b=myfunc()
在上面的代码中,只需将b分配给myfunc(),输出就是“ hello”。为什么是这样?我从未要求执行myfunc(),而是为其分配了名称。我知道类是在导入时执行的,但这不是一个类。
答案 0 :(得分:1)
myfunc
和myfunc()
是不同的东西。在您的代码中,myfunc
是函数引用,而myfunc()
返回调用myfunc
的结果。
您想要这个:
b=myfunc
答案 1 :(得分:0)
myfunc()意味着您正在调用函数,因为函数没有返回b并没有任何值。
如果打印b,则不显示任何内容。
如果在这种情况下分配b = myfunc,则将函数的引用传递给变量b(如果使用b()),它将执行函数主体,这意味着b和myfunc将指向相同的引用。
答案 2 :(得分:0)
由于打印值或从函数返回值之间存在差异。您仅在函数中进行打印,而不从函数返回任何值。因此,如果该函数未返回任何内容,则无法将其分配给该变量...使用myfunc()执行该函数只会将值打印到终端。如果要将该值存储到变量,您需要从函数中将其返回。 :)
def myfunc():
print("Helloo")
b = myfunc()
--> hellloo
b = myfunc
b
--> <function __main__.hello()>
b()
--> hellloo
def myfucn():
return("hellloo")
b = hello()
b
--> hellloo'