我是 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
请您参考如下方法:
功能范围hello和 hi是完全不同的。它们没有任何共同变量。
请注意调用 hi(x,y) 的结果是一些对象。您将该对象保存为名称 good在函数中 hello .
名为good的变量在 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绑定(bind)到对象2.绑定(bind)完成位置顺序。在
hello,y绑定(bind)到对象3.在
hello, Python 计算第一个语句,fordf150 = hi( y, x ),y是 3,x是 2.一个。 Python 为计算
hi创建了一个新的命名空间.在
hi,ix绑定(bind)到对象3.绑定(bind)完成位置顺序。在
hi,iy绑定(bind)到对象2.在
hi,发生了一些事情并且good绑定(bind)到某个对象,比如3.1415926.在
hi, 一个return被执行;将对象标识为hi的值.在本例中,对象的名称为good并且是对象3.1415926.hi命名空间被丢弃。good,ix和iy消失。然而,对象 (3.1415926) 仍然是评估hi的值。 .在
hello, Python 完成第一条语句,fordf150 = hi( y, x ),y是 3,x是2。hi的值是3.1415926.一个。
fordf150绑定(bind)到通过评估hi创建的对象,3.1415926.在
hello, Python 转向其他语句。在某个时候
something绑定(bind)到一个对象,比如说2.718281828459045.在
hello, 一个return被执行;将对象标识为hello的值.在本例中,对象的名称为something并且是对象2.718281828459045.命名空间被丢弃。
fordf150和something消失,x也是如此和y.然而,对象 (2.718281828459045) 仍然是评估hello的值。 .
任何名为 hello 的程序或脚本得到答案。
