的功能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