python---形参和实参

                                                                               python---形参和实参

         python函数的两种类型参数,一种是函数定义里的形参,一种是调用函数时传入时传入的实参。

         经常在使用一些内置函数时需要传入参数,例如调用math.sin时,需要传入一个整型数字作为实参。有的函数需要多个参数,如,math.pow需要两个参数,一个是基数(base),另一个是指数(exponent)。

         在函数内部,会将实参的值赋给形参,例如:

         在该函数中,函数名personinfo后面的参数列表name和age就是实参,在函数体中分别将name和age的值传递给name和age,函数体中的name和age就是形参。

         注意:在函数体内都是对形参进行操作,不能操作实参,即对实参做出更改。

         内置函数的组合规则在自定义函数上同样适用。例如,我们对自定义的personinfo函数可以任何表达式作为实参:

        

运行结果如下:

        

         由执行结果可以看到,可以用字符串的乘法表达式作为实参。

         在python中,作为实参的表达式会在函数调用前执行,例如,在上面的实例中,实际上先是执行的是”xioaming”*2的操作,再将执行的结果作为一个实参传递到函数体中。

         注意:作为实参传入函数的变量名称和函数定义里形参的名字没有关系。函数只关心形参的值,而不关心它在调用前叫什么名字。

Python中,实参形参是函数编程中的重要概念。定义函数时,圆括号内使用逗号分隔的形式参数列表即为形参;调用函数时向其传递的参数则是实参实参的值或引用会被传递给形参[^1]。 两者存在多方面区别: - **定义位置**:形参在函数定义时声明,用于接收函数调用时传递的实参值,在函数体内部使用,定义了函数期望的输入类型数量;实参在函数调用时传递给函数,可以是常量、变量、表达式或其他函数调用的结果,用于初始化函数内部的形参[^4]。 - **作用范围**:形参作用范围仅限于函数内部,函数被调用时,形参会被实参初始化,函数执行完毕后,形参作用范围结束,占用的内存会被释放;实参的作用范围取决于自身定义位置,可以是全局变量、局部变量或其他函数作用范围内的变量,函数执行完毕后,实参作用范围不受影响[^4]。 - **命名顺序**:函数定义时,形参的名称顺序固定,确定了函数期望的输入类型数量;函数调用时,实参顺序通常需与形参顺序匹配,除非使用关键字参数,使用关键字参数时可按任意顺序传递实参,只需提供正确参数名即可[^4]。 - **传递方式**:在Python中,所有数据类型都通过值传递,但对于可变数据类型(如列表、字典等),传递的是引用的值,函数内部对可变数据类型的修改会影响原始数据;对于固定数据类型(如整数、浮点数、字符串、元组等),在函数内部直接修改形参的值不会影响实参[^1][^4]。 实参形参的使用方法示例如下: ```python # 1. 定义具有形参的函数 def greet(name, age): print(f"Hello, {name}! You are {age} years old.") # 2. 调用函数并传递实参 greet("Alice", 30) # 输出:Hello, Alice! You are 30 years old. # 3. 传值示例 def ChangeInt(a): a = 10 a = 2 ChangeInt(a) print('a =', a) # 输出:a = 2 # 4. 传引用示例 def changeme(mylist): mylist.append([1, 2, 3, 4]) print("函数内取值: ", mylist) mylist = [10, 20, 30] changeme(mylist) print("函数外取值: ", mylist) # 输出: # 函数内取值: [10, 20, 30, [1, 2, 3, 4]] # 函数外取值: [10, 20, 30, [1, 2, 3, 4]] # 5. 位置形参 + 默认形参示例 def basic_args(a, b = 10): print(f"a={a}, b={b}") basic_args(1) # 输出:a=1, b=10 basic_args(1, 2) # 输出:a=1, b=2 ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值