0

你好我有一个奇怪的疑问..

我的代码是

    def prints():
        print " I WILL DIE HEHE"

    def add(a,b):
        next = a
        print " Added sum is %d " % (next + b)
        next = prints()


    w = int(raw_input("Give a"))
    g = int(raw_input("Give b"))
    add(w,g)

现在的问题是为什么函数 prints() 在我将它分配给 next 即 next = prints() 时被执行。我有点困惑。

4

2 回答 2

6

因为你在呼唤它,

prints()

将执行 where as

ne = prints
ne() 

正在分配名称,然后调用新名称。

neNoteback,我也称它为next阴影内置方法

于 2013-01-21T22:36:05.200 回答
2

以下:

next = prints()

调用prints(),并将结果分配给next. 由于prints()没有显式返回任何内容,因此它隐式返回None,因此next设置为None

尚不完全清楚您期望或试图实现的目标,但考虑以下事项可能会有所帮助:

next = prints

它的作用是将函数对象分配给next. 它不调用该函数,但允许将其调用为next().

于 2013-01-21T22:36:22.680 回答