函数里的普通参数、指定参数、默认参数、动态参数的区别

1.普通参数就是像下面这段函数传入的参数一样,传入函数,没有默认值
1 def f(a):
2     a = a + 1
3     return a
4
5 b=f(3)
6 print(b)

2、指定参数

1 #像这样按照顺序传入的话,如果没有指定参数的值那么就会按照顺序分别给a,b,c赋初始值
2 d=f(3,4,5)
3 print(d)
4 #如果像这样指定a,b,c的值,那么它们就是指定参数,可以不按照它们原来的顺序传入
5 e=f(c=5,b=4,a=3)
6 print(e)

3、默认参数

 1 #默认参数
 2 #像这样在括号里指定b的初始值,那么b就成为默认参数
 3 def f(a,b=9):
 4     sum = a + b
 5     return(sum)
 6
 7 #从这里可以看到,我们只传入一个参数3,它就会默认按照顺序赋值给第一个变量a,b就等于原来的默认值9
 8 c=f(3)
 9 print(c)
10
11 #当传入两个参数时,按照顺序分别赋值给a,b,那么a=3,b=4,b被重新赋值了
12 d=f(3,4)
13 print(d)

4、动态参数

 1 #动态参数
 2 #动态参数 *args  是指当我们需要传入多个参数时,可以用*args代表多个参数,不用分别在括号里指定多个参数
 3 def f(*args):
 4     print(args,type(args))
 5
 6 d=f(1,2,3)
 7
 8 #动态参数 **kwargs, 当我们需要传入键值对类型的参数时就可以用**kwargs
 9 def f(**kwargs):
10     print (kwargs,type(kwargs))
11
12 d=f(a=3,b=4)
13
14 #动态参数之参数的万能模式,这样我们无论怎么传参数几乎都不会报错
15 def f(a,*args,**kwargs):
16     print(a,args,type(args),kwargs,type(kwargs))
17
18 d=f(22,33,44,k1=55,k2=66)
 
时间: 2024-10-10 14:53:18

函数里的普通参数、指定参数、默认参数、动态参数的区别的相关文章

python之函数的传参形参的第三种动态参数*args和**kwargs

1. 位置/关键字传参的缺点 当给函数传入的参数数目不定时,之前的传参方式解决不了问题. def eat(food1,food2,food3): print(f'我请你吃:{food1},{food2},{food3}') eat('蒸羊羔','蒸熊掌','蒸鹿尾') 万能参数,动态参数. *args def eat(food1,food2,food3): print(f'我请你吃:{food1},{food2},{food3}') eat('蒸羊羔','蒸熊掌','蒸鹿尾','烧花鸭','烧企

Dynamic CRM 2013学习笔记(二十六)Reporting Service报表 动态参数、参数多选全选、动态列、动态显示行字体颜色

上次介绍过CRM里开始报表的一些注意事项:Dynamic CRM 2013学习笔记(十五)报表入门.开发工具及注意事项,本文继续介绍报表里的一些动态效果:动态显示参数,参数是从数据库里查询出来的:参数可以多选或全选:动态地显示列,列不是固定的:根据某一字段的值来动态地显示整行字体的颜色. 下面介绍详细的方法: 一.动态参数.参数多选全选 动态参数: 首先定义一个Dataset: SELECT DISTINCT new_countryId, new_codename AS name FROM ne

动态参数与静态参数的判断、修改

视图 v$parameter 中 ISSYS_MODIFIABLE 列能够查看参数属性,ISSYS_MODIFIABLE ='IMMEDIATE'为动态参数. ISSYS_MODIFIABLE ='FALSE' 为静态参数 . ISSYS_MODIFIABLE ='DERERRED' 为延迟参数(当前会话不生效,后续的会话有效) . 1. 参数总数:SQL> select count(*) from v$system_parameter where issys_modifiable='IMMED

报表工具中动态参数的灵活运用

报表开发过程中,有的时候我们会觉得普通参数很难满足一些业务需求,比如第二个数据集要引用第一个数据集的结果进行计算,动态控制 SQL 的过滤条件,动态列等,如果您遇到了这种情况,可以尝试使用动态参数即 ${参数名} 的方式来达到我们想要的效果. 那么,什么是动态参数呢? 动态参数一般是依赖于普通参数的具有计算能力的参数,在报表中动态参数我们可以看做是一个占位符,在报表运算之前,系统会全面搜索整张报表定义,将所有 ${参数名} 中的参数名替换成参数值即 动态参数表达式的结果. 下面我们举几个例子,看

报表工具中动态参数的使用方法和场景

报表开发过程中,有的时候我们会觉得普通参数很难满足一些业务需求,比如第二个数据集要引用第一个数据集的结果进行计算,动态控制 SQL 的过滤条件,动态列等,如果您遇到了这种情况,可以尝试使用动态参数即 ${参数名} 的方式来达到我们想要的效果. 那么,什么是动态参数呢? 动态参数一般是依赖于普通参数的具有计算能力的参数,在报表中动态参数我们可以看做是一个占位符,在报表运算之前,系统会全面搜索整张报表定义,将所有 ${参数名} 中的参数名替换成参数值即 动态参数表达式的结果. 下面我们举几个例子,看

Java vararg(动态参数)的应用

可变参数在JDK 1.5添加,刚才知道的. 以下来自<Java泛型和集合>一书. 将参数打包成一个数组传入方法中是一件让人讨厌的事,在jdk1.5中加入了一个新的功能称为vararg(动态参数),让我们来看看示例 class Lists { public static <T> List<T> toList(T… arr) { List<T> lists = new ArrayList<T>(); for(T element : arr) { li

函数参数相关(默认参数,占位参数)

C++中可以在函数声明时为参数提供一个默认值, 当函数调用时没有指定这个参数的值,编译器会自动用默认值代替 函数默认参数的规则 只有参数列表后面部分的参数才可以提供默认参数值 一旦在一个函数调用中开始使用默认参数值,那么这个参数后的所有参数都必须使用默认参数值 #include <iostream> using namespace std; void myPrint(int x = 3) { cout<<"x="<<x<<endl; }

正则replace 回调函数里接收的参数是什么?

前言 我们都知道 replace 在做替换处理方面会很常用,通常也是第一个会想到的方法.replace 第一个参数可以传入 string 或 RegExp,第二个参数可以传入 string 或 一个回调函数.在能够传入回调函数之后,事情就开始变得不简单了(如果有用过map,filter等函数,你就知道传入回调函数的强大).在做替换处理时,我们能够获取到更多的有效信息,处理的手段也可以更加多样化,而不是单纯的替换.接下来我们,来看看回调函数里接受的参数到底是什么? 回调中接收到的参数 回调中最少可

python函数参数类型:位置参数、默认参数、动态参数

1.位置参数:调用函数的时候传的参数,参数默认按顺序赋值,如果是指定那个参数赋值,不关注顺序.指定参数a=1,b=2 就在函数体内a=1,b=2 2.默认参数:在定义函数的时候,给某个参数设置默认值 3.动态参数:*args 调用函数是可以传入任意个参数或者不传,传递到函数内部会把这些函数存入到一个元组 4.一个函数有位置参数,默认参数时位置参数必须在默认参数前面 原文地址:https://www.cnblogs.com/mo-nian/p/11841066.html