2

我在使用 python 时遇到问题,需要一些帮助。调用任何函数时,它不再显示输出,而是显示<function hello at 0x0000000002CD2198>(hello 是函数名)。我已经重新安装了 Python,但问题仍然存在。前几天还好,开始似乎无缘无故地发生了。

我该如何解决这个问题?

4

4 回答 4

8

您需要调用您的函数,您只打印函数对象本身:

>>> def hello():
...    return "Hello World"
...
>>> print hello()
Hello World
>>> print hello
<function hello at 0x1062ce7d0>

注意 thehellohello()行之间的区别。

于 2012-09-05T17:05:13.787 回答
4

调用函数 as func(),调用函数时前面有括号:

>>> def hello(): 
        print "goodbye" 

>>> hello()    #use parenthesis after function name
goodbye

>>> hello         #you're doing this
<function hello at 0x946572c>

>>>hello.__str__()
'<function hello at 0x946572c>'
于 2012-09-05T17:05:34.373 回答
2

我猜你打电话hello过来

hello

试试hello()

于 2012-09-05T17:05:31.313 回答
1

只是为了完整起见:

即使hello实际被调用,当然也可能hello()只是简单地返回另一个函数。

考虑一下:

    def hello():
        """Returns a function to greet someone.
        """
        def greet(name):
            return "Hello %s" % name
        # Notice we're not calling `greet`, so we're returning the actual
        # function object, not its return value
        return greet

    greeting_func = hello()

    print greeting_func
    # <function greet at 0xb739c224> 
    msg = greeting_func("World")

    print msg
    # Hello World
于 2012-09-05T17:27:09.837 回答