|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
给深度学习入门者的Python快速教程基础篇之变量和引用& o! }; f6 m* ~$ { q
变量和引用/ v0 y8 x' [) L$ L
: G. p# z$ J, d9 K, kPython中基本变量的赋值一般建立的是个引用,比如下面的语句:5 W# b: F( ^7 h; I/ l6 q
a = 17 Q1 }5 S' S; V1 `" S4 v. }
b = a
, A4 U8 R/ J% V2 J+ u8 }6 sc = 1: L, p M: U- u& x
2 U" [0 Y- C, n% h) ?' t' Ja赋值为1后,b=a执行时并不会将a的值复制一遍,然后赋给b,而是简单地为a所指的值,也就是1建立了一个引用,相当于a和b都是指向包含1这个值的这块内存的指针。所以c=1执行的也是个引用建立,这三个变量其实是三个引用,指向同一个值。这个逻辑虽然简单,不过也还是常常容易弄混,这没关系,Python内置了id函数,可以返回一个对象的地址,用id函数可以让我们知道每个变量指向的是不是同一个值:
% M) t# L. }4 y4 M ^$ ?" x" Wid(a) # 35556792L6 o# p& y- [9 {% J
id(b) # 35556792L
3 S4 x9 h2 u6 j/ ^- Q, q7 m2 Nid(c) # 35556792L% |3 ~5 B k B% v: d& k! H1 z# J
( n0 Q E5 z6 f9 ^ e; ?
注释中表示的仍是执行后的结果。如果这时候我们接下面两个语句:. r) e' x" h7 c. s" g# i5 m# C
b = 2 # b的引用到新的一个变量上2 F- }" E w5 M% Y. B+ p
id(b) # 35556768L0 A! ]$ F0 _* J" `5 t2 x/ N' r/ F
2 Z7 F& J7 e% d/ I' Z
可以看到b引用到了另一个变量上。 |
- q8 Z) p3 c# q/ ^; |) \0 {# s4 @3 Z1 b
2 z1 L8 d' |# {) ]6 v3 ]
. C% o6 Z+ j, l- l l0 o0 x4 F9 G |, h; S' b# k" C
$ q/ E, |8 u3 y% w" Z7 K3 h, e5 i. d
|
! g9 a" H' Y8 B1 @% j8 W | 5 W# U; p- K5 z! g* i5 k" H# o
|
|