的功能hello
範圍和hi
是完全不同的。他們沒有任何共同的變數。
請注意,調用hi(x,y)
的結果是一些對象。用功能hello
中的名稱good
保存該對象。
hello
中名爲good
的變量是一個不同的變量,與函數hi
中名爲good
的變量無關。
它們拼寫相同,但存在於不同的命名空間中。爲了證明這一點,改變兩個函數之一的good
變量的拼寫,你會發現事情仍然有效。
編輯。跟進:「所以如果我想用hello
函數中的hi
函數的結果怎麼辦?」
沒什麼不尋常的。密切關注hello
。
def hello(x,y):
fordf150 = hi(y,x)
"then do somethings,and use the variable 'fordf150'."
return something
def hi(ix, iy):
"compute some value, good."
return good
一些腳本評估hello(2, 3)
。
Python爲hello
的評估創建了一個新的命名空間。
在hello
,x
綁定到對象2
。綁定是按位置順序完成的。
在hello
,y
綁定到對象3
。
在hello
,Python中評估第一語句,fordf150 = hi(y, x)
,y
是3,x
是2
一個。 Python爲hi
的評估創建一個新的名稱空間。
b。在hi
中,ix
綁定到對象3
。綁定是按位置順序完成的。
c。在hi
中,iy
綁定到對象2
。d)。在hi
中,發生了一些事情,並且good
被綁定到某個對象,例如3.1415926
。
e。在hi
中,執行return
;將對象標識爲hi
的值。在這種情況下,該對象由good
命名,並且是對象3.1415926
。
f。放棄hi
命名空間。 good
,ix
和iy
消失。但是,對象(3.1415926
)仍然是評估hi
的值。
在hello
,Python中完成的第一條語句,fordf150 = hi(y, x)
,y
是3,x
是2的hi
值是3.1415926
。
a。 fordf150
綁定到通過評估hi
,3.1415926
創建的對象。
在hello
中,Python轉入其他語句。
在某個點something
被綁定到一個對象,比如2.718281828459045
。
在hello
中,執行return
;將一個對象標識爲hello
的值。在這種情況下,該對象的名稱是something
,並且是對象2.718281828459045
。
命名空間被丟棄。 fordf150
和something
消失,如x
和y
。然而,對象(2.718281828459045
)仍然是評估hello
的值。
無論程序或腳本hello
都能得到答案。
你的問題並不完全清晰。這兩種方法如何相關?他們屬於同一個班級嗎? – 2008-12-10 22:23:25
是的,他們在同一個班級中,只是第一個功能需要第二個功能來做某件事情的結果。 – NONEenglisher 2008-12-10 22:28:13