博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python 值传递和引用传递
阅读量:6680 次
发布时间:2019-06-25

本文共 761 字,大约阅读时间需要 2 分钟。

值传递和引用传递

參考地址:

python的值传递不会改变传入參数的值,而引用传递传入的是一个地址。有点相似c的指针。在运行完毕之后会改变传入地址所指的值。

值传递类型例如以下:

上面的代码仅仅是将a的值作为參数传递进去。程序运行完之后a的值并未改变

1
2
3
4
5
6
= 
1
def 
change_integer(a):
    
= 
+ 
1
    
return 
a
print 
change_integer(a)
print 
a

结果:

2

1

[Finished in 0.1s]

引用传递的类型例如以下:

1
2
3
4
5
6
7
= 
[
1
2
3
]
def 
change_list(b):
    
b[
0
]
= 
b[
0
]
+
1
    
return 
b
 
print 
change_list(b)
print 
b

结果:

[2, 2, 3]

[2, 2, 3]

[Finished in 0.1s]

而这里将b的地址传递进去之后,程序运行完之后b的值也随之改变。


怎样解决 变量 : 由 引用传递 变为 值传递??

方案例如以下:

1
2
3
4
5
6
7
8
9
import 
copy
 
= 
[
1
2
3
]
def 
change_list(b):
    
b[
0
]
= 
b[
0
]
+
1
    
return 
b
 
print 
change_list(copy.deepcopy(b))
print 
b

结果:

[2, 2, 3]

[1, 2, 3]

[Finished in 0.1s]

FROM:http://my.oschina.net/repine/blog/601288

转载于:https://www.cnblogs.com/gavanwanggw/p/7027074.html

你可能感兴趣的文章
jsfl导出库里面的PNG图片
查看>>
PostgreSQL的MVCC vs InnoDB的MVCC
查看>>
COMP9321/19T1/resources/22490
查看>>
使用JSON实现分页
查看>>
记2012-2013年一路的Windows Phone历程
查看>>
本博客搬家辣
查看>>
sysstat安装
查看>>
修改root密码
查看>>
在Word 2007文档表格中设置行高度和列宽度
查看>>
android:layout_gravity和android:gravity
查看>>
我的友情链接
查看>>
洛谷——P2820 局域网
查看>>
php获取数组第一个数组单元值的方法
查看>>
关于MYSQL的一些命令
查看>>
zabbix + RedHat7 安装配置指导
查看>>
Linux基础命令---显示主机名hostname
查看>>
ASP后门、***清理
查看>>
strtus2的xml文件配置
查看>>
Error:No suitable device found: no device found for connection
查看>>
SCCM 2016 为客户端分发管理组件Configuration Manager(一)
查看>>