python函数-参数

实验室

# 演示形参是可变类型
def register(name, hobby, hobby_list=[]):
hobby_list.append(hobby)
print(f"{name} prefer {hobby}'")
print(f"{name} prefer {hobby_list}") register('nick', 'read')
register('tank', 'zuipao')
register('jason', 'piao')
register('jason', 'piao',[12])

nick prefer read'

nick prefer ['read']

tank prefer zuipao'

tank prefer ['read', 'zuipao']

jason prefer piao'

jason prefer ['read', 'zuipao', 'piao']

jason prefer piao'

jason prefer [12, 'piao']

如果针对可变的形参,调用的时候,不传值,那么他会一直指向同一个可变形参。当传入参数这种情况才会不出现。

1.函数的参数

位置形参

def zx(x,y)
print(x)

位置实参

zx(1,2)

默认实参

def zx(x,y=10)

注意:位置形参必须在默认实参前面

关键字实参

def zx(x,y):
print(f"{x},{y}")
zx(y=1,x=1)

1,1

位置可以混乱

可变长参数1(指传入的参数是不固定的)

*args (元组接收)

def zx(*args):
print(args)
zx(1,2,3,[12,2],{1:2,2:3})

(1, 2, 3, [12, 2], {1: 2, 2: 3})

*()打散

def zx(x,y,z,c,*args):
print(x,y,z,c,args)
zx(1,*(1,2,32,12,3),6)

1 1 2 32 (12, 3, 6)

可变长参数2

**kwargs (接收默认参数,封装成字典)

(字典接收)

def func(**kwargw):
print(kwargw)
func(a=5,b=6,c=7)

{'a': 5, 'b': 6, 'c': 7}

**{}打散

def func(x, y, z,*args, **kwargs):
print(x, y, z, kwargs)
func(1, 3, 4,5,**{'a': 1, 'b': 2})

1 3 4 {'a': 1, 'b': 2}

python可变长参数的应用

def index(name, age, sex):
print(f"name: {name}, age: {age}, sex: {sex}") def wrapper(*args, **kwargs):
print(f"args: {args}")
print(f"kwargs: {kwargs}")
index(*args, **kwargs) wrapper(name='nick', sex='male', age=19)

args: ()

kwargs: {'name': 'nick', 'sex': 'male', 'age': 19}

name: nick, age: 19, sex: male

最新文章

  1. Unity学习疑问记录之协程
  2. 史上最浅显易懂的Git分布式版本控制系统教程
  3. kissy使用注意事项
  4. 【转】腾讯OCR—自动识别技术,探寻文字真实的容颜
  5. 关于打开ILDASM的方法
  6. 50个jQuery代码段帮你成为更好的JavaScript开发者
  7. [工具]web开发时自动刷新网页:liveReload
  8. 51nod 1103 N的倍数 思路:抽屉原理+前缀和
  9. oracle赋值问题(将同一表中某一字段赋值给另外一个字段的语句)
  10. selenium 不同版本Driver
  11. 题解-CodeChef IOPC14L Sweets Problem
  12. PhoenixFD插件流体模拟——UI布局【Preview】详解
  13. Luogu 2679 子串 (动态规划)
  14. powershell玩转litedb数据库-第二版
  15. git第六节---git 远程仓库
  16. xpath的常见操作
  17. apache -- 端口被占用
  18. Redis学习篇(二)之Hash类型及其操作
  19. 在头文件中声明class 类 与 include类所在的头文件区别---理解
  20. C++函数调用之——值传递、指针传递、引用传递

热门文章

  1. 中小学生试卷自动生成程序--jialin大佬代码分析
  2. C++学习笔记10_输入输出流.文件读写
  3. csp-s模拟测试101的T3代码+注释
  4. 【gradle使用前篇—Groovy简介】
  5. python学习之【第九篇】:Python中的变量作用域
  6. apache+php+mysql搭建php环境
  7. Python实现群聊天小程序代码
  8. Opencv-Python项目(1) | 基于meanshiftT算法的运动目标跟踪技术学习
  9. pat 1132 Cut Integer(20 分)
  10. ArcGIS API For Javascript:新增热力图层的方法