day 11 函数参数
形参与实参
形参:就是形式参数,在函数定义时,写在括号里面指定的参数就是形式参数
实参:在调用函数时传入的参数就是实参
在调用函数时就会自动的把形参与实参绑定起来,然后调用结束之后,解除绑定关系
位置形参与位置实参
按照一定的顺序(从左往右)定义的参数就是位置参数
注意:
只要是定义了的位置形参都必须被传值
位置形参的数量与位置实参的数量必须一致,不能多传,也不能少传
实参会按照传入的位置依次赋值给形参
关键字参数
关键字实参:
在调用函数时,指名道姓的为形参赋值就称之为关键字参数
优点是
打破传入参数的顺序,可以与形参的顺序不同
注意:
1.不管以什么方式传值,每一个形参都应该被传值,
2.关键字参数必须放在位置参数的后面
3.不能为同一个形参传多次值
4.使用关键字传参时,实参的名字必须与形参的名字匹配
到底是位置参数还是关键字,是由实参传值的时候决定的
默认形参:
在定义时,已经为形参指定了一个值,那么这个形参就称之为默认形参
特定:
在调用时可以不用为默认形参传值,那么就使用这个参数的默认值
也可以为默认参数传值,则就使用传入的那个值
场景:当函数中的某一个形参经常出现重复的值,将其定义为默认形参
注意:
1.默认形参必须放在非默认形参的后面
2.默认形参的值在定义的时候就固定了
3.不应该将默认形参的默认值设置为一个可变类型,因为形参在定义的时候就已经固定了
所以会导致函数调用始终使用那块空间
可变长参数
*的使用
带*的形参可以接受任意个数的实参,接受 到的实参会被打包成元组类型,形参的名字可以任意,
但是建议使用args
带*的实参
实参前面加*会将*后面的值打散
带*的形参不能接受关键字实参
当可变长形参出现在了位置形参的前面时,那么后面的位置形参必须以关键字实参传入
当可变长形参出现在了位置形参后面,会先按照顺序给前面位置位置形参赋值,多余的参数打包给*
**的使用
形参中如果带有**,会把关键字实参打包成字典类型传入
只能接受多出来的关键字实参
实参中**,会把**后面的字典打散,成为关键字实参
*和**为函数提供了拓展空间,后面根据需求增加参数
day 11 函数参数的更多相关文章
- c++11 函数模板的默认模板参数
c++11 函数模板的默认模板参数 #define _CRT_SECURE_NO_WARNINGS #include <iostream> #include <string> ...
- c++11之函数参数包展开
1.关于 本文略带总结性,参考:泛化之美--C++11可变模版参数的妙用 参数包展开方式有两种: 递归展开 和 逗号表达式展开. 本文代码并非全部来自参考文章,自己做了注释和修改.请以原文为准 2. ...
- 用C++11实现C++17的apply(动态数组用作函数参数)
标题有点错误,apply是用tuple做参数,调用一个函数.这个标题是为了能更好的适配搜索关键字. 动态数组用作函数参数更适合嵌入了脚本环境的C++程序,比如lua或javascript(js). 若 ...
- php与js中函数参数的默认值设置
php函数参数默认值设置: <?phpfunction test($val=3){ echo $val."<br/>";}test(11);test();?& ...
- 深入理解javascript函数系列第二篇——函数参数
× 目录 [1]arguments [2]内部属性 [3]函数重载[4]参数传递 前面的话 javascript函数的参数与大多数其他语言的函数的参数有所不同.函数不介意传递进来多少个参数,也不在乎传 ...
- python基础(三元运算+深浅拷贝+函数参数)
三元运算 三元运算,又称三目运算,主要作用是减少代码量,是对简单的条件语句的缩写. 书写格式: result = 值1 if 条件 else 值2 即如果条件成立,则将值1赋给result变量,如果不 ...
- python函数基础以及函数参数简解
python中函数分为函数.内置函数Python所有的内置函数 自定义函数要使用def语句,依次写出函数名.括号.括号中的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值用return语句返回. ...
- PowerShell控制台输出符号+函数参数类型指定+文本内容读取
There are several ways: Write-Host: Write directly to the console, not included in function/cmdlet o ...
- python学习day10 函数Ⅱ(参数&作用域)
函数Ⅱ(参数&作用域) 知识小结: py2与py3的区别 逻辑运算()>not>and>or 字符串翻转切片翻转 is与==区别 git相关 数据类型判断 操作系统:cent ...
随机推荐
- 《CSS世界》读书笔记(五) --height:100%
<!-- <CSS世界> 张鑫旭著 --> 相对简单而单纯的height:auto height:auto比width:auto简单的多,原因在于: CSS默认流是水平方向的, ...
- 51Nod 1174 区间中最大的数
给出一个有N个数的序列,编号0 - N - 1.进行Q次查询,查询编号i至j的所有数中,最大的数是多少. 例如: 1 7 6 3 1.i = 1, j = 3,对应的数为7 6 3,最大的数为7. ...
- 输出UTF-8-BOM格式的文件
File localDir = new File(localPath); if(!localDir.exists()){ localDir.mkdirs(); } File file = new Fi ...
- redis工具
pom.xml添加 <!--jedis redis客户端--> <dependency> <groupId>redis.clients</groupId> ...
- P3628 [APIO2010]特别行动队(斜率优化dp)
P3628 [APIO2010]特别行动队 设$s[i]$为战斗力前缀和 显然我们可以列出方程 $f[i]=f[j]+a*(s[i]-s[j])^{2}+b*(s[i]-s[j])+c$ $f[i]= ...
- Shell 常用技巧
Shell 常用技巧 echo $RANDOM | cksum | cut -c - openssl rand -base64 | cksum | cut -c - date +%N | cut -c ...
- ldap 集成harbor
harbor: 1.6 默认配置文件在harbor.cfg,我们可以先不添加配置,直接在harbor web界面进行配置(harbor 1.6 如果db 启动失败提示postgresql 数据目录已存 ...
- day01编程语言,计算机组成: 五大组成部分,计算机三大核心,进制,内存分布图,操作系统
本周内容 第一天: 计算机原理 操作系统 第二天: 编程语言 python入门:环境 - 编辑器 变量 基本数据类型 学习方法 鸡汤 - 干货wwwh:what | why | where | h ...
- HAOI 2018 染色(容斥+NTT)
题意 https://loj.ac/problem/2527 思路 设 \(f(k)\) 为强制选择 \(k\) 个颜色出现 \(s\) 种,其余任取的方案数. 则有 \[ f(k)={m\choos ...
- SQLServer 对已有数据表添加自增主键
最近在做老表的数据整理,发现有的表没有主键标识,.NET Core 无法一键生成模型,需要带有主键的表才可以,所以需要针对已有数据添加主键,这是我找到的两种方式. 1. 主键为int 或者bigint ...