Python函数参数传递:是值传递还是引用传递?

2026-06-09 16:140阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1476个文字,预计阅读时间需要6分钟。

Python函数参数传递:是值传递还是引用传递?

在学完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函数那一章时,很自然的就会想到: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++​​中,当你初始化一个变量时,就是声明一块存储空间并写入值。

阅读全文