今日内容总结: 一.函数参数--动态传参 动态参数必须是在位置参数后面,比如:def chi(a,b,*food): print("我要吃",a,b,food)chi("大米饭","小米饭","黄瓜","西红柿") 默认值参数必须是在最后位置,比如:def chi(a,b,*food,c="馒头"): print(a,b,food,c)chi("香蕉", "菠萝")chi("香蕉", "菠萝","葫芦娃")chi("香蕉", "菠萝","葫芦娃", "口罩") 顺序: 位置参数, 动态参数*, 默认值参数. 动态关键字参数,现在是一个dict,比如:def func(**kwargs): print(kwargs)func(a=1,b=2,c=3) 最终顺序: 位置参数 > *args动态参数 > 默认值参数 > **kwargs动态关键字参数 # fun(*lst)# s = "臣妾做不到"# fun(*s)#元祖打散 # def fun(**kwargs):# print(kwargs)# dic = {‘a‘:1, ‘b‘:2}# fun(**dic)# 字典打散 二.名称空间,局部,全局,作用域,加载顺序给存放名字和值的关系的空间起一个名字叫 命名空间,变量在存储的时候就是存储在这片空间中的.命名空间分类:1全局命名空间 直接在py文件中,函数外声名的变量都属于全局命名空间2局部命名空间 在函数中声名的变量会放在局部空间3内置命名空间 存放python解释器为我们提供的名字. 作用域:顶格的是全局作用域.在全局作用域里 后面的,是局部作用域.globals,可以查看全局作用域里面有哪些东西.locals,可以查看当前作用域. 三.函数的嵌套# def fn():# print(111)# def fn2():# print(222)# fn()# fn2()# print() 执行顺序,先调用的先执行,后调用的后执行.## def fu2():# print(222)# def fu3():# print(333)# print(444)# fu3()# print(888)# print(33)# fu2()# print(55) 33 222 444 33 888 55 调用会返回,不调用就会继续往下执行. 四.关键字global和nonlocal global表?示. 不再使?用局部作?用域中的内容了了. ?而改?用全局作?用域中的变量量nonlocal 表?示在局部作?用域中, 调?用?父级命名空间中的变量量.
原文地址:https://www.cnblogs.com/asdlo/p/9451838.html
时间: 2024-10-13 06:57:55