我在名为 seta.py 的文件中有以下内容:
def print_name():
print "hello"
我正在通过口译员执行以下操作:
import seta
接着
seta.print_name
我希望输出为“hello”,但如下所示:
<function print_name at 0x7faffa1585f0>
我究竟做错了什么?
我在名为 seta.py 的文件中有以下内容:
def print_name():
print "hello"
我正在通过口译员执行以下操作:
import seta
接着
seta.print_name
我希望输出为“hello”,但如下所示:
<function print_name at 0x7faffa1585f0>
我究竟做错了什么?
要调用一个函数,您需要添加()
:
seta.print_name()
否则它将打印该函数对象的str
/repr
版本。
演示:
def func():
print "Hello, World!"
>>> func #Returns the repr version of function object
<function func at 0xb743cb54>
>>> repr(func)
'<function func at 0xb743cb54>'
>>> print func #Equivalent to `print str(func)`
<function func at 0xb743cb54>
>>> func() #Eureka!
Hello, World!
如果您在解释器中定义一个函数,然后打印不带括号的函数名称,您将获得函数对象__repr__
的(表示),因为在 Python 中,函数是对象。这就是你得到的,但这里有一个演示。
>>> def foo():
... return 1
...
>>> print foo
<function foo at 0x1005fa398>
括号调用函数。调用计算函数的返回结果。因此,当您键入时foo()
,它会变成1
. 但是如果没有括号,你只是在谈论函数本身,而不是它的调用。您期望调用它的结果。
正如其他人会指出的那样,您的意思是输入seta.print_name()
.