调用函数显示输出<function hello =“”at =“”0x0000000002cd2198 =“”> </function>

时间:2012-09-05 17:02:10

标签: python function

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

我该如何解决这个问题?

4 个答案:

答案 0 :(得分:8)

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

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

请注意hellohello()行之间的差异。

答案 1 :(得分:4)

将函数调用为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>'

答案 2 :(得分:2)

我猜你通过

打电话给hello
hello

尝试使用hello()

答案 3 :(得分: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