在python中为变量赋值?

时间:2013-01-21 22:35:06

标签: python python-2.7 python-2.x

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

我的代码是

    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()。我有点困惑。

2 个答案:

答案 0 :(得分:6)

因为你在呼唤它,

prints()

将执行

ne = prints
ne() 

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

Noteback,我也将其称为ne,因为next会影响内置方法

答案 1 :(得分:2)

以下内容:

next = prints()

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

目前尚不清楚您期望或想要实现的目标,但考虑以下因素可能会有所帮助:

next = prints

这样做是将功能对象分配给next。它不会调用该函数,但允许将其调用为next()