巨蟒python全栈开发-第10天 函数进阶

一.今日主要内容总览(重点)
1.动态传参(重点)  *,**
*:
形参:聚合
位置参数*=>元组
关键字**=>字典
实参:打散
列表,字符串,元组=>*
字典=>**

形参顺序:
位置,*args,默认值,**kwargs

无敌传参:
def func(*args,**kwargs): #arguments参数, keyword-arguments关键字参数
pass

2.作用域和名称空间
名称空间:用来存放名字(变量,函数名,类名,引入的模块名字)的

1.全局名称空间:我们在py文件中自己写的变量,函数...
2.内置名称空间:我们python解释器提供好的一些内置函数(print,input...)
3.局部名称空间:在我们执行函数的时候,会产生一个局部名称空间.放的是:函数内部的内容(变量,函数,类...)

名称空间可能会有无数个,局部名称空间,相对是独立的,一般互不干扰

作用域:
1.全局作用域:内置+全局
2.局部作用域:局部

globals() 查看全局作用域
locals() 查看当前作用域

#函数调用完毕,函数开辟的空间自动关闭
#全局不能找局部的变量
#但是局部可以找全局

3.函数的嵌套
在函数中声明函数
在内部函数中使用变量的时候,查找顺序:先找自己=>上一层=>上一层..全局=>内置

4.nonlocal和global关键字(重点)
golbal:在局部引入全局变量
nonlocal:在局部...内层函数引入外层离他最近的那个变量

下周预习:
第一类对象(函数名,他就是个变量名),闭包,迭代器
生成器,各种推导式
内置函数1,内置函数2
装饰器(头疼),装饰器进阶

模块 //一个周
面向对象 //一个周

DAY10-函数进阶

二.今日内容大纲
1.动态传参
2.名称空间&作用域
3.函数的互相调用和函数的嵌套
4.nonlocal&global







猜你喜欢

转载自www.cnblogs.com/studybrother/p/10084631.html