详解python 函数传值方法

  • Post category:Python

Python函数的参数传递有两种方式:传值和传址。对于不同的数据类型,它们的传递方式也不同。

传值

当传递的参数是不可变类型(如数字、字符串、元组)时,传递的是对象的值,函数内部对参数对象的任何改变都不会影响到原参数对象。

示例代码:

def func(x):
    x = x + 1
    print("函数内部x的值是:", x)

y = 10
func(y)
print("函数调用后y的值是:", y)

运行结果:

函数内部x的值是: 11
函数调用后y的值是: 10

传址

当传递的参数是可变类型(如列表、字典)时,传递的是对象的引用,函数内部对参数对象的任何改变都会影响到原参数对象。

示例代码:

def func(lst):
    lst[0] = -1
    print("函数内部lst的值是:", lst)

lst = [1, 2, 3]
func(lst)
print("函数调用后lst的值是:", lst)

运行结果:

函数内部lst的值是: [-1, 2, 3]
函数调用后lst的值是: [-1, 2, 3]

注意事项

  • 不要使用可变类型(如列表、字典)作为函数默认参数的值,因为默认参数的值在定义函数时就被创建了,如果采用可变类型作为默认参数值,那么在函数多次调用时,这个默认值会被多次共享,会导致程序出现难以排查的问题。
  • 当函数中对参数对象进行修改时,尽量要注意程序的逻辑和语义,避免在程序中出现未知的副作用。

以上就是Python函数参数传值方法的相关内容,如果在使用中有任何疑问,可以在留言区提出。