1. def chi(zhushi, cai, fushi, tang, tiandian):
  2. print(zhushi,cai,fushi,tang,tiandian)
  3.  
  4. chi("大碗大米饭", "火爆大头菜", "把子肉", "西红柿鸡蛋汤", "烤地瓜")
  5. chi("小碗大米饭", "火爆大头菜") # 参数不够
  6.  
  7. # 形参的顺序(重点):
  8. # 位置 *args 默认值 **kwargs
  9. # 以后写参数. 可以随意的进行搭配, 但是, 顺序不能串
  10.  
  11. # * 在形参位置. * 表示不定参数-接收的是位置参数
  12. # 接收到的位置参数的动态传参: 都是元组
  13. def chi(*food): # 在形参这里把传递过来的实参进行了聚合,聚合成了元组
  14. print(food)
  15. #
  16. chi("小米粥")
  17. chi("小米粥", "咸鸭蛋")
  18. chi("爆米花", "咸鸭蛋", "辣白菜")
  19. chi("小米粥", "爆米花", "咸鸭蛋", "蒜茄子")
  20.  
  21. def func(*args, a, b, c):
  22. print(a, b , c, args)
  23.  
  24. func(1,2,3,4,5,6,7, a=8, b=9,c=10)
  25.  
  26. # **在形参表示动态传参-关键字参数
  27. # 关键字动态传参接收到的是字典
  28. def func(**kwargs): # 也是聚合. ** 聚合成字典
  29. print(kwargs)
  30. #
  31. # func(1,2,3,4,5,6,7) # 位置参数. 报错
  32. func(a=1, b=2, c=3, haha="呵呵", good="not bad")
  33.  
  34. # def func(**kwargs, gender="男"):
  35. # print(gender, kwargs)
  36.  
  37. # func(a=5,b=3,c=6, gender="女")
  38.  
  39. # # 无敌传参
  40. def func(*args, **kwargs): # 参数没有限制. 随便传递
  41. print(args)
  42. print(kwargs)
  43.  
  44. func(1,2,3,4, a=3,b=5)
  45.  
  46. # # 这里是形参
  47. # # * 聚合
  48. def chi(*food):
  49. print(food)
  50. #
  51. lst = ["胡萝卜", "大白菜", "大萝卜", "草", "果冻"]
  52. for el in lst:
  53. chi(el)
  54. #
  55. chi(lst[0], lst[1], lst[2], lst[3], lst[4])
  56. #
  57. # # 这里是实参
  58. # # * 打散
  59. chi(*"你今天吃了些什么") # * 打散. 把列表, 元组, 字符串打散成位置参数进行传递
  60. chi("胡萝卜", "大白菜", "大萝卜", "草", "果冻")
  61.  
  62. def chi(**food): # 聚合, 聚合成字典
  63. print(food)
  64. #
  65. dic = {"主食":'面条', "副食":"土豆泥", "汤":"疙瘩汤"}
  66. dic1 = {}
  67. #
  68. chi(**dic, 甜点="冰激凌") # 打散. 打散成关键字
  69. chi(主食="面条", 副食="土豆泥", 汤="疙瘩汤", 甜点="冰激凌")
  70.  
  71. # 形参:
  72. # *->元组, **->字典 表示聚合
  73. # 实参:
  74. # *->列表,字符串,元组, **->字典 表示打散

  

Python 动态传参的更多相关文章

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

    一.函数的动态传参 1.*args位置参数动态传参 def chi(*food): print(food) chi("烧烤","火锅","虾吃虾涮&q ...

  2. python之路--动态传参,作用域,函数嵌套

    一 . 动态传参(重点)  * ,  ** * 与 ** * 在形参位置. * 表示不定参数, 接收的是位置参数 接收到的位置参数的动态传参: 都是元组 def eat(*food): # 在形参这里 ...

  3. 在Java中动态传参调用Python脚本

    最近,又接触到一个奇葩的接口,基于老板不断催促赶时间的情况下,在重写java接口和复用已有的python脚本的两条路中选择了后者,但是其实后者并没有好很多,因为我是一个对python的认识仅限于其名称 ...

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

    一.动态传参1.*表示动态传参. 可以接受所有的位置参数传参的时候自动的把实参打包成元组 交给形参 def chi(*food): print(food) chi() # 动态传参可以不传参数 chi ...

  5. python记录_day10 动态传参 命名空间 作用域

    一.动态传参 动态传参用到 *args 和 **kwargs ,*号表示接收位置参数,args是参数名:**表示接收关键字参数,kwargs是参数名 def chi(*food): print(foo ...

  6. Python基础--动态传参

    形参的顺序: 位置 *arg     默认值  **args  ps:可以随便搭配,但是*和**以及默认值的位置顺序不能变 *,** 形参:聚合 位置参数* >>元祖 关键字** > ...

  7. python-函数进阶-动态传参,名称空间,作用域的问题

    一.函数的动态的动态参数 动态参数分为两种:动态接收位置参数.动态接收关键字参数. 1.*args  位置参数动态传参 # 顺序: 位置参数=>*args(arguments) => 默认 ...

  8. python-函数-动态传参,作用域的问题,函数嵌套,global nonlocal

    ⼀. 函数参数--动态传参 之前我们说过了传参, 如果我们需要给⼀个函数传参, ⽽参数⼜是不确定的. 或者我给⼀个 函数传很多参数, 我的形参就要写很多, 很⿇烦, 怎么办呢. 我们可以考虑使⽤动态参 ...

  9. 函数动态传参,命名空间,gloabal,nonlocal关键字

    一.函数参数->动态传参(形参的第三种) 动态参数分为两种: 1)动态接收位置参数 普通的位置传参: def func(quality_food,junk_food): print('我要吃', ...

随机推荐

  1. python学习——大文件分割与合并

    在平常的生活中,我们会遇到下面这样的情况: 你下载了一个比较大型的游戏(假设有10G),现在想跟你的同学一起玩,你需要把这个游戏拷贝给他. 然后现在有一个问题是文件太大(我们不考虑你有移动硬盘什么的情 ...

  2. ubuntu14.04 设置开机自启动脚本

    方法1.将脚本放入/etc/rc.local文件中. 方法2.添加一个ubuntu的开机启动服务 分为以下几个步骤: 1)新建一个脚本文件 new_services.sh #!/bin/bash # ...

  3. MVC修改视图的默认路径

    概述:之前MVC5和之前的版本中,我们要想对View文件的路径进行控制的话,则必须要对IViewEngine接口的FindPartialView或FindView方法进行重写,所有的视图引擎都继承于该 ...

  4. android中 检查网络连接状态的变化,无网络时跳转到设置界面

    1:在AndroidManifest.xml中加一个声明 <receiver android:name="NetCheckReceiver">    <inten ...

  5. Unity搭建简单的图片服务器

    具体要实现的目标是:将图片手动拷贝到服务器,然后在Unity中点击按钮将服务器中的图片加载到Unity中. 首先简答解释下 WAMP(Windows + Apache + Mysql + PHP),一 ...

  6. hdu-4289 最大流Dinic模板题

    拆点,套模板. 详情见代码. // // main.cpp // hdu_4289 // // Created by Luke on 16/8/29. // Copyright © 2016年 Luk ...

  7. Android之RecyclerView实现时光轴

    做项目的过程中有个需求需要时光轴,于是网上找了部分资料 ,写了个案例,现在分享给大家. 如图: activity_main.xml <?xml version="1.0" e ...

  8. Mass Change Queries CodeForces - 911G (线段树合并)

    链接 大意: 给定序列, 每次操作将区间[l,r]中的x全改为y, 最后输出序列 权值范围比较小, 对每个权值开一颗线段树, 每次将x合并到y上即可 #include <iostream> ...

  9. UVA-11029 Leading and Trailing

    Apart from the novice programmers, all others know that you can’t exactly represent numbers raised t ...

  10. 用STL对一组数组进行排序和去重

    #include <iostream> #include<cmath> #include "algorithm" #include "cstdio ...