首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
【
Python迭代器和关键字 global ,nonlocal
】的更多相关文章
Python迭代器和关键字 global ,nonlocal
1.关键字 global : 可以修改全局变量 可以在局部作用域声明一个全局变量,剪切 : 此时局部作用域没有该变量,全局作用域中有 name = 1 def func(): global name name += 1 print(globals()) func() print(name) print(globals()) nonlocal : 不能操作全局变量 可以对父级作用域的变量进行修改,并且在当前作用域创建(复制)一分此变量 # 这是复制 # def func(): # count =…
python中的关键字global和nonlocal
知识点: global将一个变量变为全局变量 nonlocal改变最近的变量,又不是全局作用. 1.global 在python中,当引用一个变量的时候,对这个变量的搜索按找本地作用域(Local).嵌套作用域(Encolosing function locals).全局作用域(Global).内置作用域(builtins模块)的顺序来进行的,即所谓的LEGB规则. m = 1 #全局 def fun1(): m = 2 #嵌套 def fun2(): m = 3 #本地 fun2() fun1…
2.关键字global,nonlocal
count=0 def func(): print(count) count+=1 func() UnboundLocalError: local variable 'count' referenced before assignment 解释器认为:如果你在局部作用域对一个变量进行修改了, 你在局部作用域已经定义好这个变量了. global 可以在局部作用域声明一个全局变量. 这是剪切 def func(): global name name=1 print(globals()) # prin…
Python小白学习之路(十一)—【局部变量和全局变量】【关键字global】【关键字nonlocal】
写在前面: 几乎有一周没有更新学习笔记了吧 上周一周身体都不怎么舒服 然后还得写开题报告 然后还得看文献 天天就是写写写写写写~~~~~~改改改改改改~~~~~~~~~ 今天又开始学习了 希望之前的没忘记 其实今天更新的笔记是上周看的视频 可能忘得差不多了 又重新看的 我这脑子,笨死啦 加油吧!小伙郭 最近在看绝望的主妇,感觉很好看!(每次看美剧美名其曰学英语,~~~~然而,只有自己懂) 一.局部变量和全局变量 全局变量 在程序的一开始顶头定义的变量 作用域是整个程序(全局作用域) 局部变量…
Day 10 动态参数&名称空间,局部全部.函数嵌套&global nonlocal关键字.
一.动态参数#形参 有3种动态参数#*args 动态参数,不定长参数def func (*args): print(args,type(args))func(1,2,"alex",3,4,55,5,)#输出结果 (1, 2, 'alex', 3, 4, 55, 5) <class 'tuple'> def func(a,b,c,*args): print(a) print(b) print(c) print(args,type(args))func(1,2,"al…
python函数知识二 动态参数、函数的注释、名称空间、函数的嵌套、global,nonlocal
6.函数的动态参数 *args,**kwargs:能接受动态的位置参数和动态的关键字参数 *args -- tuple *kwargs -- dict 动态参数优先级:位置参数 > 动态位置参数 > 默认参数(关键字参数) > 动态关键字参数 1.*.args: 接收动态的位置参数,接受任意多个,定义阶段*为聚合,调用阶段*为打散 def func(a,b,*args):#*.args可以替换,*s print(a,b,args) print(a,b,*args) #*为打散 fun…
python-函数-动态传参,作用域的问题,函数嵌套,global nonlocal
⼀. 函数参数--动态传参 之前我们说过了传参, 如果我们需要给⼀个函数传参, ⽽参数⼜是不确定的. 或者我给⼀个 函数传很多参数, 我的形参就要写很多, 很⿇烦, 怎么办呢. 我们可以考虑使⽤动态参数. 形参的第三种: 动态参数 动态参数分成两种:1. 动态接收位置参数⾸先我们先回顾⼀下位置参数, 位置参数, 按照位置进⾏传参 ef chi(quality_food, junk_food): print("我要吃", quality_food, junk_food) chi(&quo…
global & nonlocal
name = "A" def test(): name = "B" def test2(): global name # global 指的是拿到的是全局的变量,直接改变全局变量 name = "C" test2() print("1",name) # ===>首先使用局部变量 print("2",name) # ===>此处使用全局变量 test() # ===>此处使用局部变量 并将全…
Python迭代器,生成器--精华中的精华
1. 迭代器 迭代器是访问集合元素的一种方式.迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束.迭代器只能往前不会后退,不过这也没什么,因为人们很少在迭代途中往后退.另外,迭代器的一大优点是不要求事先准备好整个迭代过程中所有的元素.迭代器仅仅在迭代到某个元素时才计算该元素,而在这之前或之后,元素可以不存在或者被销毁.这个特点使得它特别适合用于遍历一些巨大的或是无限的集合,比如几个G的文件. 特点: a)访问者不需要关心迭代器内部的结构,仅需通过next()方法或不断去取下一个内容…
全局变量&局部变量,global&nonlocal
###全局变量与局部变量 1.函数内部的变量名如果第一次出现,且出现在=前面,即被视为定义一个局部变量,不管全局域中有没有用到该变量名,函数中使用的将是局部变量 2.函数内部的变量名如果第一次出现,且出现在=后面,且该变量在全局域中已定义,则这里将引用全局变量,如果该变量在全局域中没有定义,当然会出现"变量未定义"的错误. 3.函数中使用某个变量时,该变量名既有全局变量也有同名的局部变量,则会使用局部变量 4.在函数中,如果想给全局变量赋值,则需要用关键字global生命 NAME=&…