我是python的初学者,有一个问题,对我来说很困惑.如果我先定义一个函数但在函数内我必须使用一个在下面另一个函数中定义的变量,我可以这样做吗?或者我如何将另一个函数的返回值导入函数?例如:
def hello(x,y): good=hi(iy,ix) "then do somethings,and use the parameter'good'." return something def hi(iy,ix): "code" return good
S.Lott.. 5
的功能的范围hello
和hi
是完全不同的.它们没有任何共同的变量.
请注意,调用的结果hi(x,y)
是一些对象.使用good
函数中的名称保存该对象hello
.
名为good
in 的变量hello
是一个不同的变量,与good
函数中指定的变量无关hi
.
它们拼写相同,但存在于不同的命名空间中.为了证明这一点,good
在两个函数之一中更改拼写变量,你会发现事情仍然有效.
编辑.后续行动:"如果我想在hi
功能中使用hello
功能结果,该怎么办?"
没什么不寻常的.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
.
湾 在hi
,ix
被绑定的对象3
.绑定是按位置顺序完成的.
C.在hi
,iy
被绑定的对象2
.
d.在某种程度上hi
,事情会发生并且good
与某些对象绑定3.1415926
.
即 在hi
,a return
执行; 将对象标识为值hi
.在这种情况下,对象由对象命名good
并且是对象 3.1415926
.
F.该hi
命名空间将被丢弃. good
,ix
并iy
消失.3.1415926
但是,object()仍然是评估的价值hi
.
在hello
,Python中完成第一条语句,fordf150 = hi( y, x )
,y
是3,x
是2的值hi
是 3.1415926
.
一个. fordf150
绑定到通过评估创建的对象hi
,3.1415926
.
在hello
,Python转向其他语句.
在某些时候something
,绑定到一个对象,比如说2.718281828459045
.
在hello
,a return
执行; 将对象标识为值hello
.在这种情况下,对象由对象命名something
并且是对象 2.718281828459045
.
命名空间被丢弃. fordf150
和something
消失,因为这样做x
和y
.2.718281828459045
但是,object()仍然是评估的价值hello
.
无论调用什么程序或脚本都能hello
得到答案.
的功能的范围hello
和hi
是完全不同的.它们没有任何共同的变量.
请注意,调用的结果hi(x,y)
是一些对象.使用good
函数中的名称保存该对象hello
.
名为good
in 的变量hello
是一个不同的变量,与good
函数中指定的变量无关hi
.
它们拼写相同,但存在于不同的命名空间中.为了证明这一点,good
在两个函数之一中更改拼写变量,你会发现事情仍然有效.
编辑.后续行动:"如果我想在hi
功能中使用hello
功能结果,该怎么办?"
没什么不寻常的.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
.
湾 在hi
,ix
被绑定的对象3
.绑定是按位置顺序完成的.
C.在hi
,iy
被绑定的对象2
.
d.在某种程度上hi
,事情会发生并且good
与某些对象绑定3.1415926
.
即 在hi
,a return
执行; 将对象标识为值hi
.在这种情况下,对象由对象命名good
并且是对象 3.1415926
.
F.该hi
命名空间将被丢弃. good
,ix
并iy
消失.3.1415926
但是,object()仍然是评估的价值hi
.
在hello
,Python中完成第一条语句,fordf150 = hi( y, x )
,y
是3,x
是2的值hi
是 3.1415926
.
一个. fordf150
绑定到通过评估创建的对象hi
,3.1415926
.
在hello
,Python转向其他语句.
在某些时候something
,绑定到一个对象,比如说2.718281828459045
.
在hello
,a return
执行; 将对象标识为值hello
.在这种情况下,对象由对象命名something
并且是对象 2.718281828459045
.
命名空间被丢弃. fordf150
和something
消失,因为这样做x
和y
.2.718281828459045
但是,object()仍然是评估的价值hello
.
无论调用什么程序或脚本都能hello
得到答案.