当前位置:  开发笔记 > 编程语言 > 正文

关于python变量范围的一个小问题

如何解决《关于python变量范围的一个小问题》经验,为你挑选了1个好方法。

我是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

的功能的范围hellohi是完全不同的.它们没有任何共同的变量.

请注意,调用的结果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

一些脚本评估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,ixiy消失.3.1415926但是,object()仍然是评估的价值hi.

    hello,Python中完成第一条语句,fordf150 = hi( y, x ),y是3,x是2的值hi3.1415926.

    一个. fordf150绑定到通过评估创建的对象hi,3.1415926.

    hello,Python转向其他语句.

    在某些时候something,绑定到一个对象,比如说2.718281828459045.

    hello,a return执行; 将对象标识为值hello.在这种情况下,对象由对象命名something并且是对象 2.718281828459045.

    命名空间被丢弃. fordf150something消失,因为这样做xy.2.718281828459045但是,object()仍然是评估的价值hello.

无论调用什么程序或脚本都能hello得到答案.



1> S.Lott..:

的功能的范围hellohi是完全不同的.它们没有任何共同的变量.

请注意,调用的结果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

一些脚本评估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,ixiy消失.3.1415926但是,object()仍然是评估的价值hi.

    hello,Python中完成第一条语句,fordf150 = hi( y, x ),y是3,x是2的值hi3.1415926.

    一个. fordf150绑定到通过评估创建的对象hi,3.1415926.

    hello,Python转向其他语句.

    在某些时候something,绑定到一个对象,比如说2.718281828459045.

    hello,a return执行; 将对象标识为值hello.在这种情况下,对象由对象命名something并且是对象 2.718281828459045.

    命名空间被丢弃. fordf150something消失,因为这样做xy.2.718281828459045但是,object()仍然是评估的价值hello.

无论调用什么程序或脚本都能hello得到答案.

推荐阅读
手机用户2402852387
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有