Python函数参数传递:是值传递还是引用传递?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1476个文字,预计阅读时间需要6分钟。
在学完Python函数那一章时,很自然的就会想到:Python中函数传参时,是传值呢?还是传引用?或者两者都不是?+ 在回答上述问题之前,我们先来看看下面的代码:+ 代码1
在学完Python函数那一章节时,很自然的的就会想到Python中函数传参时传值呢?还是传引用?或者都不是?
在回答上面的问题之前我们先来看看下面的代码:
代码1:
def foo(var):var = 2
print(var) #output: 2
a = 1
foo(a)
print(a) #output: 1
恩,看似是值传递
代码2:
def bar(var):var.append(1)
b = []
print(b) #output:[]
bar(b)
print(b) #output:[1]
应该是引用传递?有点奇怪吧,为了弄清楚这个问题,我们先来了解一下Python中变量与对象的关系。
一、变量和对象
我们首先要知道Python中的“变量”与C/C++中“变量”是不同的。
在C/C++中,当你初始化一个变量时,就是声明一块存储空间并写入值。
本文共计1476个文字,预计阅读时间需要6分钟。
在学完Python函数那一章时,很自然的就会想到:Python中函数传参时,是传值呢?还是传引用?或者两者都不是?+ 在回答上述问题之前,我们先来看看下面的代码:+ 代码1
在学完Python函数那一章节时,很自然的的就会想到Python中函数传参时传值呢?还是传引用?或者都不是?
在回答上面的问题之前我们先来看看下面的代码:
代码1:
def foo(var):var = 2
print(var) #output: 2
a = 1
foo(a)
print(a) #output: 1
恩,看似是值传递
代码2:
def bar(var):var.append(1)
b = []
print(b) #output:[]
bar(b)
print(b) #output:[1]
应该是引用传递?有点奇怪吧,为了弄清楚这个问题,我们先来了解一下Python中变量与对象的关系。
一、变量和对象
我们首先要知道Python中的“变量”与C/C++中“变量”是不同的。
在C/C++中,当你初始化一个变量时,就是声明一块存储空间并写入值。

