找回密码
 注册
关于网站域名变更的通知
查看: 311|回复: 2
打印 上一主题 下一主题

给深度学习入门者的Python快速教程基础篇之变量和引用

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2018-11-20 11:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
给深度学习入门者的Python快速教程基础篇之变量和引用
; _4 z8 {2 [* N
变量和引用
4 X1 Y3 Z" H' Z! H) I" f2 `- g; n( }$ R+ V# x+ l
Python中基本变量的赋值一般建立的是个引用,比如下面的语句:) w" O4 T" _4 j" |. l1 |" n
a = 1! ^( i4 @; ^" m2 ~+ `) J& R" O: ]
b = a
1 [+ d& C9 O5 k2 g3 Z' ^( |; ]& n! Cc = 1' ~( Z0 s' Q3 ]9 i2 A) w

% t6 B4 V/ f) m- s* {8 d+ x) ua赋值为1后,b=a执行时并不会将a的值复制一遍,然后赋给b,而是简单地为a所指的值,也就是1建立了一个引用,相当于a和b都是指向包含1这个值的这块内存的指针。所以c=1执行的也是个引用建立,这三个变量其实是三个引用,指向同一个值。这个逻辑虽然简单,不过也还是常常容易弄混,这没关系,Python内置了id函数,可以返回一个对象的地址,用id函数可以让我们知道每个变量指向的是不是同一个值:
( t( M$ p- P+ |& v3 ^id(a) # 35556792L! j4 W, W8 G9 _% \" S
id(b) # 35556792L
6 X+ |: h6 W7 v% A5 U! I7 p( bid(c) # 35556792L* p. A+ @. N* `* _; j8 A1 t
/ d% C( s8 S+ @/ ^. U  }6 J5 c
注释中表示的仍是执行后的结果。如果这时候我们接下面两个语句:' q, d* `8 M8 @* P" O8 r
b = 2 # b的引用到新的一个变量上
8 c) m( q* r. j( w$ p$ v6 did(b) # 35556768L
5 p" K" U, V3 b9 b  T; y
  r, K+ `6 ]" V5 b可以看到b引用到了另一个变量上。

$ L8 h. x6 h$ f
  [. m, E5 Z/ L& |0 j, W* q, L+ z9 ~; P* V1 r4 l1 |$ E4 R2 O

3 V, y' q$ ?0 p# v3 U7 z! r/ c! ]6 _8 w  l0 U( ]

8 I0 X' E) C5 N9 L

8 Y: J6 G+ i& A; f9 D  L8 L

* S" b6 y/ a0 {% E, X( I1 y
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-7-23 13:50 , Processed in 0.125000 second(s), 24 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表