day10 动态传参

一动态传参

  1动态传参,可以接受任意的参数

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

  1位置参数的动态传参 写法*参数名  例如  *args 接受的参数是tuple

# def eat(*good): #动态传参,可以接受多个实参
#     print(good)
# eat("可乐","麻辣烫","火锅")
# eat("麻辣烫")   #接受的是元祖,括号里面的元素每个用逗号隔开

  2关键字参数的动态传参, 写法 ** 参数名  例如**keargs 接受的参数是dict类型

# def eat(**kwargs): #接受的是关键字参数,也可接受多个传参
#     print(kwargs)
# eat(good="麻辣烫,盖浇饭",fruit="苹果",drink="七喜") #字典

  3 无敌传参

    def  fun(*args,**keargs):

      pass

# def rat(*args,**kwargs):#接受的是位置参数跟关键字参数
#     print(args,kwargs)
# rat(1,6,65,95+9,a=6,n=6) #打印的是元祖加字典

  

  *,**的作用:

    在形参:聚合

def fun(**kwargs):  #吧打散的在聚合
    print(kwargs)
dic={"a":[1,2,3],"b":2}
fun(**dic)  # 吧字典打散

二  作用域的问题

  1.globals()获取全局作用域的内容

  2.locals()获取局部作用域中的内容

# a = 10
# def func():
#     global a # 这里用的a是全局的
#     a = 20
#     print(a)
# func()
# print(a)    # 20

a = 10
def func1():
    a = 20
    print(a)
    def fun2():
        nonlocal a # 上一级, 且不能是全局
        a = 30
        print(a)
    fun2()
    print(a)

func1()
print(a)

三 函数嵌套-函数的执行流程

  所有的()表示的是函数的调用

# def fun1():
#     print(111)
#
# def fun2():
#     print(222)
#     fun1()
#
# fun2()
# print(333)

# def fun2():
#     print(222)
#     def fun3():
#         print(666)
#     print(444)
#     fun3()
#     print(888)
#
# print(33)
# fun2()
# print(555)
# def func():
#     print("哈哈哈")
# a = func # 函数可以赋值 .相当于. a和func是一回事儿
# func()
# a()

四 global和nonlocal

  1global:寻找全局作用域中的内容

# a = 10
# def func():
#     global a # 这里用的a是全局的
#     a = 20
#     print(a)
# func()
# print(a)    # 20

  2nonlocai:寻找上一级作用域中的内容,但不能是全局的

a = 10
def func1():
    a = 20
    print(a)
    def fun2():
        nonlocal a # 上一级, 且不能是全局
        a = 30
        print(a)
    fun2()
    print(a)

func1()
print(a)

五额外追加的内容 命名空间

a = 10  # 全局
def func(): # 全局
    a = 40  # 局部
    b = 20  # 局部
    def abc():  # 局部
        d = 30 # 是局部
        print("哈哈")
        print(a, b) # 这?使?的是局部作?域
        print(locals())
    abc()

    # print(globals()) # 打印全局作用域中的内容
    # print(locals()) # 打印局部作用域中的内容,locals()打印当前这个函数局部作用与中的内容
func()

print(globals())
# print(globals()) # 打印全局作用域中的内容

  

  

原文地址:https://www.cnblogs.com/daien522556/p/9172970.html

时间: 2024-08-03 06:58:42

day10 动态传参的相关文章

uploadify的用法与动态传参 提供demo下载

---恢复内容开始--- 官网:http://www.uploadify.com/   一款不错的上传插件.官方文档http://www.uploadify.com/documentation/ 用法网上很多.今天快乐我在项目中想动态的穿选择,然后上传,同时服务器端,接受到参数与图片的地址.可是uploadify,直接是获取到,页面才加载的值.所以搜了一下.找到的办法.但都是旧版本的.今天我来写个新3.21版本. 要点     1.关闭自动上传.红色地方 $('#upload').uploadi

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

Postman 串行传参和动态传参详解

Postman是一款功能强大的网页调试与发送网页HTTP请求的Chrome插件 用Postman做接口测试的时候,要把多条用例一起执行,就需要把用例连接起来,一次性执行 目录 串行传参 动态传参 使用的接口是微信公众号开发文档里面的接口,详细请看开发文档:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1445241432 首先需要获取到接口测试号,开始开发>接口测试号申请>获得appID和appsecret,位置为:htt

Azkaban动态传参

Azkaban提供了Web和Ajax API两种操作方式.两种方式都支持动态传递参数,在Web界面中,可以通过可视化的方式,定义或覆盖参数的值(具体操作可参考:http://blog.csdn.net/until_v/article/details/43052193).下面重点说说使用Ajax的方式,动态传递工作流参数: Azkaban的官网上未提到动态传参的功能,其实它是支持ajax传参功能的.具体细节如下: 如果需要这样设置key-value的值: <span style="white

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

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(

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

今日内容总结: 一.函数参数--动态传参 动态参数必须是在位置参数后面,比如:def chi(a,b,*food): print("我要吃",a,b,food)chi("大米饭","小米饭","黄瓜","西红柿") 默认值参数必须是在最后位置,比如:def chi(a,b,*food,c="馒头"): print(a,b,food,c)chi("香蕉", "

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

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