Uploaded by Hangyi Liu

Python使用误区

advertisement
Python 使用误区
1、在 Python 中,函数调用时传递的参数是引用传递,也就是说,函数内部的
形参和调用函数时传递的实参其实是同一个对象,因此在函数内部对形参的修改
会影响到实参的值。
2、在 Python 中,列表变量是指针变量。当我们将一个列表变量赋值给另一个
变量时,实际上是将指向列表对象的指针复制了一份,而不是将列表本身复制了
一份。这意味着,两个变量指向同一个列表对象,修改其中一个变量的值会影响
到另一个变量的值。例如:
Python 复制列表的方法
3、在 Python 中,*args 和**kwargs 是常用的参数传递方式,它们分别表示不定
数量的位置参数和关键字参数。
①*args 用于函数定义中,表示传递不定数量的位置参数。它可以在函数定义时
用来接收不确定数量的参数,这些参数将被封装成一个元组。例如:
def func(*args):
for arg in args:
print(arg)
在上面的例子中,*args 表示可以接收任意数量的位置参数,这些参数将被封装
成一个元组。可以像下面这样调用函数:
func(1, 2, 3) # 输出 1, 2, 3
func('a', 'b', 'c', 'd') # 输出 a, b, c, d
②**kwargs 用于函数定义中,表示传递不定数量的关键字参数。它可以在函数
定义时用来接收不确定数量的关键字参数,这些参数将被封装成一个字典。例如:
def func(**kwargs):
for key, value in kwargs.items():
print(key, value)
在上面的例子中,**kwargs 表示可以接收任意数量的关键字参数,这些参数将
被封装成一个字典。可以像下面这样调用函数:
func(name='张三', age=18) # 输出 name 张三, age 18
func(x=1, y=2, z=3) # 输出 x 1, y 2, z 3
需要注意的是,*args 和**kwargs 通常与其他参数一起使用,它们需要放在参数
列表的最后面。例如:
def func(a, b, c, *args, **kwargs):
pass
Download