NON*_*her 1 python variables scope
我是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
Run Code Online (Sandbox Code Playgroud)
的功能的范围hello和hi是完全不同的.它们没有任何共同的变量.
请注意,调用的结果hi(x,y)是一些对象.使用good函数中的名称保存该对象hello.
名为goodin 的变量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
Run Code Online (Sandbox Code Playgroud)
一些脚本评估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得到答案.