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