首页 行业资讯 宠物日常 宠物养护 宠物健康 宠物故事

Python 的函数是怎么传递参数的

发布网友

我来回答

2个回答

懂视网

函数定义中可能包含多个形参,因此函数调用中也可能包含多个实参。向函数传递实参方式很多,可使用位置实参。位置实参 ,这要求实参的顺序与形参的顺序相同;也可使用关键字实参,其中每个实参都由变量名和值组成;还可使用列表和字典。下面来依次介绍这些方式。

位置实参

调用函数时,Python必须将函数调用中的每个实参都关联到函数定义中的一个形参。为此,最简单的关联方式是基于实参的顺序。这种关联方式被称为位置实参位置实参 。为明白其中的工作原理,来看一个显示宠物信息的函数。这个函数指出一个宠物属于哪种动物以及它叫什么名字,如下所示:

38617c7702db83b2cb432daff3d31.png

这个函数的定义表明,它需要一种动物类型和一个名字。调用describe_pet() 时,需要按顺序提供一种动物类型和一个名字。例如,在前面的函数调用中,实 参'hamster' 存储在形参animal_type 中,而实参'harry' 存储在形参pet_name 中。在函数体内,使用了这两个形参来显示宠物的信息;输出描述了一只名为Harry的仓鼠:

ad01229027468823d852b40ea4f675b.png

关键字实参

关键字实参是传递给函数的名称—值对。你直接在实参中将名称和值关联起来了,因此向函数传递实参时不会混淆(不会得到名为Hamster的harry这样的结果)。关键字实参让 你无需考虑函数调用中的实参顺序,还清楚地指出了函数调用中各个值的用途。

80012e135b96e0742c4aa714b60cbf7.png

默认值

编写函数时,可给每个形参指定默认值

24827c3af3d5b9815f4f299201dbec7.png

热心网友

Python 的函数传递参数:
Python 传参数可以理解为 C 的 const 指针(your_type* const your_variable),它所指向的对象可以被修改产生副作用,但变量本身不能修改指向其他对象。这个和 C++ 的 reference 差不多。
所以如果一定要产生 C 的修改指针指向其他对象的效果,用 list、dict 或其他自定义的 mutable 对象包装是一个办法,但我认为这样是一种不良实践。在 C 语言中用参数输出结果有非常多的理由:

C 语言没有 tuple,不能返回多值,除非声明一个 struct 类型。这种情况下划分 in 参数和 out 参数成为一种惯例
C 语言没有异常机制,返回值一般要保留给 errno
但这些情况在 Python 中都是不存在的

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com