python如何传值

原创
admin 2小时前 阅读数 9 #Python

Python中变量的传值

Python中的变量赋值实际上是创建了一个指向对象的新引用,而不是复制对象本身,这种特性使得Python中的变量传值变得相对复杂。

不可变类型的传值

不可变类型包括整数、浮点数、字符串等,当我们将一个不可变类型的变量传递给一个函数时,实际上传递的是该变量的值,而不是它的引用,函数内部的修改不会影响到外部的变量。

def change_value(x):
    x = 2 * x
    print("x in function:", x)
num = 10
change_value(num)
print("num outside function:", num)

输出:

x in function: 20
num outside function: 10

在这个例子中,尽管我们在函数内部将x的值乘以2,但函数外部的num值并没有改变,这是因为函数内部的x只是形参,它指向的对象并不会影响到实参num。

可变类型的传值

可变类型包括列表、字典、元组等,当我们将一个可变类型的变量传递给一个函数时,实际上传递的是该变量的引用,而不是它的值,函数内部的修改会影响到外部的变量。

def change_value(x):
    x[0] = 2 * x[0]
    print("x in function:", x)
num = [10, 20]
change_value(num)
print("num outside function:", num)

输出:

x in function: [20, 20]
num outside function: [20, 20]

在这个例子中,我们在函数内部将列表x的第一个元素乘以2,这个修改在函数外部也生效了,这是因为函数内部的x和实参num指向的是同一个对象。

热门