ibatis的sqlmap.xml中id可以传入一个参数_4.3 ?函数的参数

本文将探索:

5806afe5363355029b21a5bf7361d07a.png

注:本节内容,狠重要!

【探索内容】

查阅文档时,我们通常会发现如下图函数后面的括号里有一堆东西,对于小萌新来说,括号里的东西实在让人头大,实际上,这些东西就是函数的参数,其实这非常酷,对于调用函数的人来说,知道函数功能,写下函数名字,如何传递正确的参数,以及函数将返回什么样的值就够了,至于函数内部复杂逻辑,完全封装在函数体,调用者无需了解。

b0fddd51238cafc1241a9f0fe5c3fbf5.png

本节我们就来探索一下函数的参数,知道如何使用他们~根据不同的需求,来选择一个或多个函数参数(必选参数,默认参数、可变参数、关键字参数和命名关键字参数)使得函数更灵活,代码更优雅。进入正题:

1.没有任何参数的函数:

先来看看最简单的情况,函数没有参数:

def 

46f0550ce8dcb95d29319165d5a075d8.png

在语法上,函数没有参数是可以的,但需注意函数名字(如上述函数hello)后面的括号不能省略,调用函数时,只需写上函数名与空括号。

2.位置参数

def 

对于add(x, y)函数,参数x, y就是位置参数,调用函数时,传入的两个值2及7按照位置顺序依次赋给参数x和y。

注:当我们调用add(x, y)函数时,必须传入两个参数,否则会报错:

6696ba199223b0542447e00eac375a66.png

3.默认参数

如果我们需要计算一个数字与固定数字7的和,每次调用函数都传入2个参数,太麻烦了,那默认参数就可以帮我们解决这个问题:

def 

试试将第一行代码改为 def add(x, y = 7):运行效果如何?

注:必选参数在前,默认参数在后,否则Python的解释器会报错。

栗子二:

统计某班学生信息,定义函数student,其中年龄默认为18岁,性别默认为1;狗蛋儿同学年龄及性别与默认不符,则传入参数时候,将狗蛋的实际年龄及性别传入即可:

def 

2e0d74b1fb783493dd1dd2e4fe93b050.png

如果有一只猪猪同学年龄只是性别与默认不符合,则调用函数时可写为:

student

重要警告: 默认值只会执行一次。这条规则在默认值为可变对象(列表、字典以及大多数类实例)时很重要。比如,下面的函数会存储在后续调用中传递给它的参数:

def 

93f681dac7ee8ca9d7db3235faf6a042.png

如果你不想要在后续调用之间共享默认值,你可以这样写这个函数:

def 

2dfc599b912c7463a1be19898722aa9b.png

大白话:定义默认参数必须指向不变对象!

4.可变参数:可变参数在函数调用时自动组装为一个tuple

可变参数即传入的参数个数是可变的。如下述栗子,我们想计算一些数的和,但是在编写函数时,我们并不知道这些数的个数:

def 

可变参数语法:在参数numbers前面加了一个*号。在函数内部,调用该函数时,可以传入任意个参数(包括0个参数),参数numbers接收到的是一个tuple。

如果已有一个list或者tuple,要调用一个可变参数:

nums 

*nums表示把nums这个list的所有元素都作为可变参数传进去。

t 

5.关键字参数:关键字参数在函数内部自动组装为一个dict

关键字参数可以扩展函数的功能。在函数student里,定义的参数有name和ID,age ,gender ,然而,若调用者愿意提供更多的参数,我们可利用关键字参数接收到(如增加了皮浪同学的参数爱好)。

def 

e7d6110e8dc3a07a18e4daaa59721225.png

当然,关于皮浪同学的调用还可以这样写:

extra 

6.命名关键字参数

在关键字参数中举的例子,有些娃可能会提供额外信息,比如一些娃可能还会提供自己的头发是长的短的等,而这些信息我们并不想获得,如我们只想获得爱好,可以这样写:

def 

65c222a84bbebffd19d95ca083bd20e4.png

命名关键字参数语法需要一个特殊分隔符*,*后面的参数被视为命名关键字参数。

注:虽然关键字参数和命名关键字参数听起来很像,但是记忆时,可将它们当成没有一丁点关系来记忆。别问我为啥~

此外,如果传入了我们不想要的信息,会报错~试试将第8行代码改为:

student

瞅瞅运行结果~

7.参数组合

python中,如果函数有多种参数,则参数定义的顺序必须是:必选参数(即上文提到的位置参数)、默认参数、可变参数、命名关键字参数和关键字参数。

此处不做过多叙述,在勤练和时间同学的帮助下,可将上述各种参数搞清,此处自会打通任督二脉~

【补充】

1.形参和实参区别

形参 是指出现在函数定义中的名称,而 实参 则是在调用函数时实际传入的值。 形参定义了一个函数能接受何种类型的实参。 例如,对于以下函数定义:

def 

在上述函数test里,x,y均为形参,调用函数test(2, 7),2与7均为实参。

【挑战】

1.编写一个函数,调用函数,计算一个数2次方。

2.编写一个函数,调用函数,计算一个数3次方。

3.编写一个函数,调用函数,计算一个数n次方。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值