Python传入参数的几种方法

本文详细介绍了Python的参数传递方式,包括共享传参、位置参数、默认参数、可变参数、关键字参数和命名关键字参数。强调了默认参数必须指向不变对象,可变参数允许传入多个,而关键字参数允许以字典形式传入。还讨论了函数内部参数名不影响调用者,以及如何通过赋值传递不可变和可变对象。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Python唯一支持的参数传递方式是『共享传参』(call by sharing)

多数面向对象语言都采用这一模式,包括Ruby、Smalltalk和Java(Java的引用类型是这样,基本类型按值传递)

共享传参是指函数的各个形式参数获得实参中各个引用的副本;也就是说,函数内部的形参是实参的别名(alias)

这种方案的结果是,函数可能会修改作为参数传入的可变对象,但是无法修改那些对象的标识(即不能把一个对象替换为另一个对象)

位置参数

位置参数是最简单的传入参数的方式,在其它的语言中也常常被使用

演示一:

def func(a, b):
print(a+b)
func(1, 2)  #3

演示二:

def power(x, n):
s = 1
while(n > 0):
n -= 1
s *= n
return s
power(2, 3) #8

默认参数

默认参数就是在调用函数的时候使用一些包含默认值的参数


在学习过程中有什么不懂得可以加我的
python学习交流扣扣qun,784758214
群里有不错的学习视频教程、开发工具与电子书籍。
与你分享python企业当下人才需求及怎么从零基础学习好python,和学习什么内容
def power(x, n=2):
s = 1
while(n > 0):
n -= 1
s *= n
reutrn s
power(3)    #9
power(2, 3) #8

定义默认参数要牢记一点:默认参数必须指向不变对象!

#以下这个函数如果被多次调用会在默认添加多个END字符串
def add_end(l = []):
l.append('END')
return l
#为了避免这个问题,应该把传入的默认参数设置为不可变的
def add_end(l = None):
l = []
l.append
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值