python_函数相关的各种参数定义和传递
一、函数的创建
如图所示
二、函数的参数传递
函数调用的参数传递
位置实参:
根据形式参数对应的位置进行实际参数的传递
关键字实参:
根据形式参数名称进行实际参数传递
结论:
如果是不可变对象,在函数体的修改不会影响到实际参数的值,arg1的修改为100,不会影响到n1的值
如果是可变对象,在函数体内的修改回影响到实际参数的值,arg2的修改,append(10),回影响到n2的值
三、函数的参数定义:
1、函数定义默认值参数:
函数定义时,给形式参数设置默认值,只有与默认值不符合的时候才需要传递实参。
例如:
只传一个参数,b采用默认值
传2个参数,2将默认值10替换
2、个数可变的位置形式参数
-定义函数时,可能无法事先确定传递的位置实参的个数时,使用可变的位置形式参数
-使用*定义个数可变的位置参数
-结果为一个元组
3、个数可变的关键字形式参数
-定义函数时,无法事先确定传递的关键字实参的个数时,使用可变的关键字形参
-使用**定义个数可变的关键字形参
-结果为一个字典
-
4、错误的位置形式参数定义、错误的关键字形式参数定义
def fun2(*args,*a):
pass
以上代码,程序会报错,个数可变的位置参数,只能为1个
def fun2(**args,**a):
pass
以上代码,程序会报错,个数可变的关键字参数,只能为1个
在一个函数的定义过程中,既有个数可变的关键字形式参数,也有个数可变的位置参数,
要求个数可变的位置参数,放在个数可变的关键字参数之前
def fun(*args,**kwargs):
pass
四、函数的调用
在函数调用时,将列表(元组、集合)中的每一个元素都转换为位置实参传入;
在函数调用时,将字典中的键值对都转化为关键字实参传入;
例题:
需求:c和d只能采用关键字实参传递
从✳号之后的参数,在函数调用时,只能采用关键字参数传递,将*称为关键字警察
python_函数相关的各种参数定义和传递相关推荐
- python参数传递方法_深入理解python中函数传递参数是值传递还是引用传递
python 的 深入理解python中函数传递参数是值传递还是引用传递 目前网络上大部分博客的结论都是这样的: Python不允许程序员选择采用传值还是传 引用.Python参数传递采用的肯定是&q ...
- Python中函数的参数定义和可变参数
刚学用Python的时候,特别是看一些库的源码时,经常会看到func(*args, **kwargs)这样的函数定义,这个*和**让人有点费解.其实只要把函数参数定义搞清楚了,就不难理解了. 先说说函 ...
- [你必须知道的.NET]第十二回:参数之惑---传递的艺术(下)
本文将介绍以下内容: 按值传递与按引用传递深论 ref和out比较 参数应用浅析 接上篇继续,『第十一回:参数之惑---传递的艺术(上)』 4.2 引用类型参数的按值传递 当传递的参数为引用类型时,传 ...
- python函数中可变参数的传递方式是_详解Python函数可变参数定义及其参数传递方式...
Python函数可变参数定义及其参数传递方式详解 python中 函数不定参数的定义形式如下 1. func(*args) 传入的参数为以元组形式存在args中,如: def func(*args): ...
- python函数参数定义顺序_Python函数定义-位置参数-返回值
原标题:Python函数定义-位置参数-返回值 1 函数介绍 函数在编程语言中就是完成特定功能的一个词句组(代码块),这组语句可以作为一个单位使用,并且给它取一个名字.可以通过函数名在程序的不同地方多 ...
- python函数中可变参数的传递方式是_Python函数可变参数定义及其参数传递方式实例详解...
本文实例讲述了Python函数可变参数定义及其参数传递方式.分享给大家供大家参考.具体分析如下: python中 函数不定参数的定义形式如下: 1.func(*args) 传入的参数为以元组形式存在a ...
- Mybatis配置文件参数定义
官网有时候进不去,所以就记录一下Mybatis的配置文件的各项参数定义,大家也可以上官网查询,官方文档,进不进的去看各自的缘分了 properties 定义配置,在这里配置的属性可以在整个配置文件使用 ...
- python可变参数函数二阶导数公式_Python中函数的参数定义和可变参数
刚学用Python的时候,特别是看一些库的源码时,经常会看到func(*args, **kwargs)这样的函数定义,这个*和**让人有点费解.其实只要把函数参数定义搞清楚了,就不难理解了. 先说说函 ...
- python中函数的可变参数_Python中函数的参数定义和可变参数
转自:http://www.cnblogs.com/tqsummer/archive/2011/01/25/1944416.html 刚学用Python的时候,特别是看一些库的源码时,经常会看到fun ...
最新文章
- linux进程间通信:FIFO应用 /var/log/ 系统日志的模拟实现
- 洛谷—— P1869 愚蠢的组合数
- laravel进阶系列--通过事件和事件监听实现服务解耦
- web python pkcs11_使用pkcs11模块用公钥加密数据失败
- FileNotFoundError: [Errno 2] No such file or directory: 'traingingDigits/0_0.txt'
- Spring BeanFactory 容器
- 【Django】django使用原生SQL的方法(附加说说为什么ORM上不了大台面)
- c语言基本数据类型常量,C语言基础学习基本数据类型-变量和常量
- 日本富士通正考虑将PC业务并入联想
- 【Python】 is, is not ,==, != 的区别
- 中国高性能计算服务器排名,2007中国高性能计算100强出炉
- server2012卸载oracle,Windows Server 2008 R2卸载干净ORACLE 11G
- python删除数据框中的字符串列_如何根据条件删除pandas数据框中的列?
- Google Earth Engine(GEE)统计制图
- Qcom平台测试wifi TIS需要关闭wifi扫描、漫游和休眠
- 树莓派3B+安装CentOS 7
- 【迭代式开发】V1软件需求规格说明书——大数据开发实战项目(二)
- 服务器搭建微信会员卡系统,小程序里做会员系统
- 计算机量子化学计算中HF单位,21世纪高等院校教材·量子化学基础
- java借助Robot给微信好友自动发消息(可发送表情包)
热门文章
- BODY background=自适应大小_自适应(电脑/平板/手机)网页,自适应网页设计练习总结...
- Gartner:基础设施和运营领域10大技术趋势
- 企业选择数据中心的建议
- 独立按键控制数码管c语言,各位大佬,独立按键控制数码管为什么按下的时候要加一呢?...
- php xml 增删改查,PHP实现对xml进行简单的增删改查(CRUD)操作示例
- 成功解决OSError: [Errno 28] No space left on device
- Python:Python语言编程软件安装的几大姿势之详细攻略
- ML之FE:基于FE特征工程对RentListingInquries数据集进行预处理并导出为三种格式文件(csv格式/txt格式/libsvm稀疏txt格式)
- ML之回归预测:利用九大类机器学习算法对无人驾驶汽车系统参数(2018年的data,18+2)进行回归预测值VS真实值
- AI:人工智能概念之机器学习中常用算法的思维导图集合(非常经典、建议收藏)之详细攻略