python 函数传递时 用基本函数类型和组合数据类型作参数,有什么区别,请举例说明
时间: 2024-05-05 15:20:46 浏览: 14
在 Python 中,函数参数可以是基本函数类型(如整数、字符串等)和组合数据类型(如列表、元组、字典等)。
传递基本函数类型的参数时,函数接收到的是参数的值的副本。这意味着,如果在函数内部修改了参数的值,不会影响到函数外部的变量。例如:
```
def modify_number(num):
num += 1
print(num)
x = 5
modify_number(x) # 输出 6
print(x) # 输出 5
```
传递组合数据类型的参数时,函数接收到的是参数对象的引用。这意味着,如果在函数内部修改了参数对象的内容,会影响到函数外部的变量。例如:
```
def modify_list(lst):
lst.append(4)
print(lst)
my_list = [1, 2, 3]
modify_list(my_list) # 输出 [1, 2, 3, 4]
print(my_list) # 输出 [1, 2, 3, 4]
```
在第一个例子中,我们传递了一个整数参数,函数内部修改了参数的值,但是函数外部的变量没有受到影响。在第二个例子中,我们传递了一个列表参数,函数内部修改了参数对象的内容,这导致函数外部的变量也被修改了。
因此,传递基本函数类型的参数时,函数内部的修改不会影响到函数外部的变量;传递组合数据类型的参数时,函数内部的修改会影响到函数外部的变量。