python函数的传参要求_python中函数传参详解
一、参数传入规则
可变参数允许传入0个或任意个参数,在函数调用时自动组装成一个tuple;
关键字参数允许传入0个或任意个参数,在函数调用时自动组装成一个dict;
1. 传入可变参数:
def calc(*numbers):
sum = 0
for n in numbers:
sum = sum + n * n
return sum
以上定义函数,使用如下:
传入多个参数,
calc(1, 2, 3, 4)
30 #函数返回值
传入一个列表,
nums = [1, 2, 3]
calc(*nums) # 通过 * 将list中的元素作为可变参数传入函数
14 # 函数返回值
2.传入关键字参数:
>>> def person(name, age, **kw):
... print('name: ', name, 'age: ', age, 'other: ', kw)
...
>>>
>>> person('luhc', 24, city='Guangzhou')
name: luhc age: 24 other: {'city': 'Guangzhou'}
同样,可以将预先定义的dict作为参数传入以上函数:
>>> info = {'city': 'Guangzhou', 'job': 'engineer'}
>>>
>>> person('luhc', 24, **info)
name: luhc age: 24 other: {'city': 'Guangzhou', 'job': 'engineer'}
注意: 函数person 获得的是参数 info 的一份拷贝,在函数内修改不会影响 info 的值
3. 在关键字参数中,可以限制关键字参数的名字:
# 通过 * 分割,以指定关键字参数名
>>> def person(name, age, *, city, job):
... print('name: ', name, 'age: ', age, 'city: ', city, 'job: ', job)
...
>>>
>>> person('luhc', 24, city='Guangzhou', job='engineer')
name: luhc age: 24 city: Guangzhou job: engineer
# 如果传入参数中,存在参数名不在定义的范围内,将抛出异常
>>> person('luhc', 24, city='Guangzhou', jobs='engineer')
Traceback (most recent call last):
File "", line 1, in
TypeError: person() got an unexpected keyword argument 'jobs'
>>>
此外,如果函数中已经指定可变参数,则 * 可以省略,如下:
# 省略了用 * 作为分割,指定关键字参数名
>>> def person(name, age, *args, city, job):
... print('name: ', name, 'age: ', age, 'args: ', args, 'city: ', city, 'job: ', job)
...
>>>
>>> person('luhc', 24, 'a', 'b', city='Guangz', job='engineer')
name: luhc age: 24 args: ('a', 'b') city: Guangz job: engineer
>>>
# 同样,如果传入了关键字参数未指定的参数名,则抛出异常
>>> person('luhc', 24, 'a', 'b', city='Guangz', job='engineer', test='a')
Traceback (most recent call last):
File "", line 1, in
TypeError: person() got an unexpected keyword argument 'test'
>>>
二、参数组合使用:
参数定义的顺序必须是:必选参数、默认参数、可变参数、命名关键字参数和关键字参数
def f1(a, b, c=0, *args, **kw):
print('a =', a, 'b =', b, 'c =', c, 'args =', args, 'kw =', kw)
def f2(a, b, c=0, *, d, **kw):
print('a =', a, 'b =', b, 'c =', c, 'd =', d, 'kw =', kw)
以上就是本文给大家介绍的全部内容了,希望能够对大家理解Python的函数参数的传递有所帮助
python函数的传参要求_python中函数传参详解相关推荐
- python中importlib模块安装_Python中标准模块importlib详解
Python中标准模块importlib详解 模块简介 Python提供了importlib包作为标准库的一部分.目的就是提供Python中import语句的实现(以及__import__函数).另外 ...
- python中json模块博客园_Python中的Json模块详解
Python中的Json模块详解 Json(JavaScript Object Notation)它是一种轻量级的数据交换格式,具有数据格式简单,读写方便易懂等很多优点.许多主流的编程语言都在用它来进 ...
- python协程库_python中协程的详解(附示例)
本篇文章给大家带来的内容是关于python中协程的详解(附示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 协程,又称微线程,纤程.英文名Coroutine 协程看上去也是子程序 ...
- python中split啥意思_python中split的用法详解_后端开发
如何用python正则表达式匹配字符串?_后端开发 用python正则表达式匹配字符串的方法:1.当匹配单个位置的字符串时,可以使用[(.+?)]正则表达式来提取:2.当连续多个位置的字符串匹配时,可 ...
- python 下划线变量_Python中的下划线详解
这篇文章讨论Python中下划线_的使用.跟Python中很多用法类似,下划线_的不同用法绝大部分(不全是)都是一种惯例约定. 一. 单个下划线直接做变量名(_) 主要有三种情况: 1. 解释器中 _ ...
- python中new方法详解及_Python中new方法的详解
new_ 方法是什么? __new__方法其实就是创建对象的方法 new()方法是在类准备将自身实例化时调用. 一个类可以有多个位置参数和多个命名参数,而在实例化开始之后,在调用 init()方法之前 ...
- python中函数和类的区别_Python中函数和方法的区别
简单总结: 与类和实例无绑定关系的function都属于函数(function): 与类和实例有绑定关系的function都属于方法(method). 首先摒弃错误认知:并不是类中的调用都叫方法 函数 ...
- python函数内部返回的值_Python中函数的返回值示例浅析
前言: 前面我们介绍了简单的介绍了函数和函数的参数,今天我们来说一下Python中函数的返回值. 函数的返回值:函数运算的结果,需要进一步的操作时,给一个返回值return用来返回函数的结果,如果没有 ...
- python函数与方法的区别_python中函数和方法有哪些区别
python中函数和方法有哪些区别 发布时间:2020-11-16 09:30:04 来源:亿速云 阅读:89 作者:小新 小编给大家分享一下python中函数和方法有哪些区别,相信大部分人都还不怎么 ...
- python中yield的使用_python中yield的用法详解-转载
原文链接:https://blog.csdn.net/mieleizhi0522/article/details/82142856 ,今天在写python爬虫的时候,循环的时候用到了yield,于是搜 ...
最新文章
- 游戏开发--开源21---CroftSoft Code Library |Gibdo|JOGR...
- c语言后缀表达式构造二叉树,C ++程序为后缀表达式构造表达式树
- 深度学习笔记 第五门课 序列模型 第二周 自然语言处理与词嵌入
- Rabbits UVALive - 8211
- 转折后的总结--2014年找工作
- VirtualBox启动失败,The VM session was aborted.
- 图像变换——分段线性变换
- 操作系统原理(一)操作系统概述和操作系统用户界面
- java ee图书管理系统_基于jsp的图书管理系统-JavaEE实现图书管理系统 - java项目源码...
- sqlite3数据库-常用命令
- Separating Pebbles数学,暴力
- html怎么用2个caption不换行,caption怎么用
- python解析mht文件_将不同内容类型的MHT文件提取到多个MHT-fi中
- FreeTextBox编辑框遇到的问题
- 4大私域流量体系(个人号、公众号、社群和小程序)全方面价值对比:私域流量,企业保命之本爆发之源!...
- 国庆必备海报文案大礼包,速速收下!
- NOI2010~NOI2018选做
- 一度智信:拼多多开店必备条件
- UI设计师必备10大工具
- JavaScript实现注册页面的表单验证