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)

ここでの問題は、関数を next に割り当てている間に関数 print() が実行されるのはなぜですか。私は少し混乱しています。

4

2 に答える 2

6

呼んでいるので、

prints()

どこで実行されますか

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 に答える