day2python学习
1.昨日内容和作业讲解
-
函数是以功能为导向,一个函数一个功能,减少重复代码,提高代码可读性
-
def func():
函数体
-
-
函数的调用:调用一次执行一次
-
函数的返回值: return
-
终止函数
-
return 单个值
-
return 多个值:按照元组的返回
-
-
函数的参数:
-
实参角度: 位置参数,关键字参数,混合参数
-
形参角度:位置参数,默认参数
-
2.今日内容
-
如何在工作中不让别人看出你是培训出来的?
-
第一天安装环境等等,小白各种问.
-
项目需求不清晰也不敢问.
-
自主学习,自己解决问题的能力.
-
-
形参角度:
-
万能参数
-
函数定义时,*代表聚合,他将所有的位置参数聚合成一个元组,赋值给了args
-
def func(*args):
pass
func(1, 2, 3)
func(*[1, 2, 3], *[22, 11]) #相当与func(1, 2, 3, 22, 11)
-
-
**的魔性用法
-
**将所有关键字聚合到一个字典中,将这个字典赋值给了kwargs
-
一般形参先放位置参数,然后放*args,再放默认参数,最后放**kwargs
-
def get_data(a, b, *args, c='1', **kwargs):
pass -
def get_data(**kwargs):
pass
get_data(a = '1', b = '2')
def get_data(*args, **kwargs):
pass
get_data(**{a:"1"}, **{b:"2"}) # 等同于get_data(a = '1', b = '2')
-
-
仅限关键字参数
-
d为仅限关键字参数,设定之后必须传值
-
def get_data(a, b, *args, c='1', d, **kwargs):
pass
-
-
形参的顺序
-
位置参数, *args, 默认参数, 仅限关键字参数, **kwargs
-
-
**的含义
-
在形参中为聚合,在实参中为打散
-
-
-
名称空间
-
全局名称空间,局部....
-
局部名称空间(临时名称空间):
-
-
1
-
内置名称空间
-
-
全局名称空间:
-
1
-
-
-
-
-
加载顺序,取值顺序
-
加载顺序:内置名称空间---全局名称空间---局部名称空间(函数执行时)
-
取值顺序:就近原则,单项不可逆
-
(从局部找时)局部名称空间---全局名称空间---内置名称空间
-
-
-
-
作用域
-
全局作用域:包含内置名称空间,全局名称空间
-
局部作用域: 局部名称空间,可以引用全局作用域的变量(但是不能改变)
-
局部作用域不能改变全局作用域的变量,因为当Python解释器读取到局部作用域时发现了你对一个变量进行修改的操作,解释器会认为你在局部已经定义过了这个局部变量,他就从局部找这个局部变量,就会报错.
-
-
-
-
函数的嵌套(高阶函数)
-
-
1
-
1
-
1
-
1
-
-
内置函数: globals locals
-
globals():返回的是字典,字典里的键值对: 全局作用域里的所有内容
-
函数
-
-
结果
-
-
-
locals():返回的是字典,字典里的键值对: 当前作用域里的所有内容
-
函数
-
-
结果
-
-
-
-
关键字: nonlcal global
3.今日总结
-
参数
-
万能参数
-
仅限关键字参数
-
参数的顺序
-
*的应用:聚合, 打散
-
-
名称空间:作用域, 取值顺序, 加载顺序
-
高阶函数: 执行顺序
-
globals()和locals()

浙公网安备 33010602011771号