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

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

[复制链接]

该用户从未签到

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

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
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

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

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

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

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