首页 > 学院 > 开发设计 > 正文

作用域

2019-11-06 07:45:27
字体:
来源:转载
供稿:网友
1、作用域就是变量所在的命名空间,区分全局变量还是局域变量2、函数定义了本地作用域,而模块则定义了全局作用域。3、所有变量名可以归纳为 本地变量,全局变量和内置变量,而内置变量也是全局变量4、变量名解析:LEGB原则即 ,函数本地变量、函数嵌套层、全局、内置作用域5、global语句和nonlocal语句:尽量不要用global, 在def内部赋值的变量名默认为本地变量,本地变量是调用一次,出现一次,将其改为全局变量会引发一些软件工程问题。nonlocal语句和global很相似,但global名称可以位于一个模块中,而nonlocal必须在一个嵌套的def中案例:>>> x='spam'>>> def func(): x='ni' PRint(x) >>> func()ni>>> print(x)spamglobal语句>>> x='spam'>>> def func(): global x x='ni' >>> func()>>> print(x)ninonlocal语句>>> def func(): x='ni'           # x只能在def中,下面nonlocal语句才能用 def func1():  nonlocal x      x='spam' func1() print(x)>>> func()spam6、最小文件间的修改变量:就是修改另一个文件中的变量方法有方法一:这种方法代码不灵活,容易导致bug#first.pyx=11#second.pyimport firstprint(first.x)first.x=9最好的方法:调用函数,传递参数,得到其返回值#first.pyx=11def setx(new):        global x        x=new#second.pyimport firstfirst.setx(9)7、工厂函数(也叫闭合)———一个能够记住嵌套作用域的变量值的函数案例:工厂函数有时用于生成事件处理,实时对不同情况的反馈>>> def maker(n): def action(x):  return x**n return action>>> f=maker(2)>>> f<function maker.<locals>.action at 0x02C15DB0>>>> f(3)9>>> g=maker(3)>>> g(3)27>>> f(3)           #记住了之前的298、一些python函数中保存状态信息的方法:全局变量、嵌套的def中的nonlocal、或使用默认参数值
上一篇:PIC的中断系统

下一篇:udp socket

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表