ad

打开《Python 编程与应用实践》_成为Python大佬_5.3.2 位置参数

网友投稿 106 2023-11-13

【摘要】 本书摘自《Python 编程与应用实践》一书中第5章,第3节,由冯伟森,王建,杨宁主编。

5.3.2 位置参数

有的函数可能需要不止一个信息,可能有多个信息(参数)。在调用这些函数时,必 须使用正确的参数顺序和数量,如果不符合,可能就不会得到我们想要的效果。

introduce.py

def intro_myself(name,sex):

print("My name is"+name+"!")

print("I am a"+sex+"!")

打开《Python 编程与应用实践》_成为Python大佬_5.3.2 位置参数

intro_myself("Jia","girl")

intro_myself("He","girl")

在函数 intro_myself() 中,拥有两个参数 name 和 sex, 分别用来表示姓名和性别。 在 intro_myself("Jia","girl") 中,按照顺序传递了两个值给形参,将"Jia"传递给了第一 个参数 name, 将"girl"传递给了第二个参数sex, 这样在调用函数时就打印出 My name is Jia! 和 Iam a girl!。同理,在 intro_myself("He","girl") 中,打印出My name is He! 和 I am a girl!。如下所示:

My name is Jia!

I am a girl!

My name is He!

I am a girl!

如果我们把两个参数顺序交换,则不会得到我们想要的结果,大家可以尝试一下。

5.3.3 关键字参数

位置参数必须保证参数顺序的一致,如果我们使用关键字参数,则可以不用按照参数 顺序调用函数。关键字参数调用实质上就是人为地使实参和形参一一对应。例如下面这个 例子,使用关键字参数调用函数:

def intro_myself(name,sex):

print("My name is"+name+"!")

print("I am a"+sex+"!")

intro_myself(name="Jia",sex="girl")

intro_myself(sex="girl",name="He")

可以看到,在函数 intro_myself() 中,我们没有做任何改变,只是在两次函数调用 的时候使用了关键字参数,在 intro_myself(name="Jia",sex="girl") 这一行代码中,两 个参数顺序和函数定义中的顺序一模一样,而在 intro_myself(sex="girl",name="He") 中,参数顺序发生了改变,但是我们通过使用关键字参数,指定了各个实参对应的形参, 虽然顺序发生了改变,但是并不影响函数的使用,两次调用打印的结果和上一个例子 一样。

5.3.4 默认参数

在编写函数时,还可以给形参设置一个默认值,如果设置默认参数,当调用函数时, 若我们没有提供实参,Python 会自动使用默认参数。例如下面例子中的默认参数使用:

def intro_myself(name,sex="girl"):

print("My name is "+name+"!")

print("I am a"+sex+"!")

intro_myself(name="Jia")

intro_myself(name="Jiang",sex="boy")

在函数 intro_myself() 中,我们给定了一个默认参数 sex="girl", 在这里,如果我 们在调用函数时没有给出相应的值,Python 会自动分配给我们性别为"girl" 。在 intro

myself(name="Jia") 代码中,没有给定形参sex 的值,系统默认为"girl", 得到输出结果:

My name is Jia!

I am a girl!

而我们在 intro_myself(name="Jiang",sex="boy") 中,指定了sex="boy",Python 将不再使用"girl", 而是使用"boy" 。这一行代码执行结果如下:

My name is Jiang!

I am a boy!

值得注意的是,通常我们把默认形参放在最后。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们 18664393530@aliyun.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:打开《Python 编程与应用实践》_成为Python大佬_5.7 模块和 import 语句
下一篇:学习《Python网络爬虫 从入门到精通》_7.1.2 基于Python 的微信API工具
相关文章

 发表评论

暂时没有评论,来抢沙发吧~

×