函数的第二节课,动态传参,动态关键字参数,作用域,关键字global和nonlocal

今日内容总结:

一.函数参数--动态传参        动态参数必须是在位置参数后面,比如: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

函数的第二节课,动态传参,动态关键字参数,作用域,关键字global和nonlocal的相关文章

Postman接口测试动态传参——动态获取token值

上午刚学会jmeter动态传参,下午研究了下postman也知道怎么动态获取token了. 主要就是第1行和第2行代码,第3行加上是希望Test Results有个返回值,如果不加第3行运行成功后也看不到个反馈. 第2行打码的位置就是开发自定义的responseBody里返回的token的定位,类似于一级级索引. 例如Body里直接返回的就是token:x***9.eyJ***,那么第2行直接就是postman.setGlobalVariable("token",jsonData.to

动态传参(*args **kwargs 无敌传参) 作用域globals locals和名称空间 函数的嵌套 关键字nonlcas global

动态传参(重点) *, ***, ** :形参: 聚合 位置参数* -> 元组 关键字** -> 字典 实参: 打散 列表, 字符串, 元素 -> * 字典 -> ** 形参的顺序(重点): 位置 *args(位置参数动态传参) 默认值 **kwargs(关键字动态传参)以后写参数. 可以随意的进行搭配, 但是, 顺序不能串 * 在形参位置. * 表示不定参数-接收的是位置参数接收到的位置参数的动态传参: 都是元组def chi(*food): # 在形参这里把传递过来的实参进行了

python函数的动态传参.作用域与命名空间

一.动态传参1.*表示动态传参. 可以接受所有的位置参数传参的时候自动的把实参打包成元组 交给形参 def chi(*food): print(food) chi() # 动态传参可以不传参数 chi(good_food = "胡辣汤") # 关键字传参 chi("胡辣汤", "疙瘩汤", "西红柿鸡蛋汤") chi("大猪蹄子","大汉堡","薯条","圣

js函数动态传参

js函数体内可以通过arguments对象来接收传递进来的参数,利用这一对象属性可以动态传参. function box() { return arguments[0]+' | '+arguments[1]; //得到每次参数的值 } alert(box(1,2,3,4,5,6)); //传递参数 arguments对象的length属性可以得到参数的数量. function box() { return arguments.length; //得到6 } alert(box(1,2,3,4,5

python(动态传参、命名空间、函数嵌套、global和nonlocal关键字)

一.函数的动态传参 1.*args位置参数动态传参 def chi(*food): print(food) chi("烧烤","火锅","虾吃虾涮","烤鱼") 多个位置参数传递进去,收到的内容是元组tuple,动态参数的位置必须要在位置参数后面 2**kwargs 关键字参数动态传参 def chi(**food): print(food) chi(zhangqing="吃点好的",lianda=&quo

python 动态传参,名称空间和作用域,函数的嵌套,global和nonlocal

一.动态传参 1.位置参数动态传参 def func(*args):    *表示动态传参 * 在这里表示接受位置参数的动态传参,接收到的是元组. def fun(*args): print(args) fun('aaa',3,5,6,'ccc') # 结果('aaa', 3, 5, 6, 'ccc') 2.关键字的动态传参 def func(**kwargs): 函数体(代码块) func(n=7,m="aa"): **表示接收关键字参数的动态传参,接收到的是字典. def fun(

10 函数进阶 动态传参 作用域和名称空间 函数的嵌套 全局变量

今日主要内容 1. 动态传参(重点) *, ** *, ** : 形参: 聚合 位置参数* -> 元组 关键字** -> 字典 实参: 打散 列表, 字符串, 元素 -> * 字典 -> ** 形参顺序(重点): 位置, *args, 默认值, **kwargs 无敌传参 def func(*args, **kwargs): arguments参数 keyword-arguments关键字参数 pass 2. 作用域和名称空间 名称空间: 用来存放名字(变量, 函数名, 类名, 引

第五章 shell函数的定义、执行、传参和递归函数

第五章 shell函数的定义.执行.传参和递归函数 Bash(Bourne Again shell)也支持函数,在编写大型复杂脚本的时候,可以用函数把代码编写成一个一个功能相对独立的代码块,使代码模块块.结构清晰.有效的减少程序的代码量.但是bash shell是一种解释性语言,执行效率没有编译性语言高. shell函数的定义 格式一:( function name() { command sequence (命令序列) } 格式二: name() { command sequence (命令序

day10 动态传参

一动态传参 1动态传参,可以接受任意的参数 顺序: 位置参数 *args 默认值  **kwargs 1位置参数的动态传参 写法*参数名  例如 *args 接受的参数是tuple # def eat(*good): #动态传参,可以接受多个实参 # print(good) # eat("可乐","麻辣烫","火锅") # eat("麻辣烫") #接受的是元祖,括号里面的元素每个用逗号隔开 2关键字参数的动态传参, 写法 **