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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
给深度学习入门者的Python快速教程基础篇之变量和引用
/ ]7 g2 K/ O  z% q0 y
变量和引用3 N# R* Q$ l4 J4 z3 x6 {

6 |7 t/ e- s. h$ p2 K3 }, iPython中基本变量的赋值一般建立的是个引用,比如下面的语句:
! P, E& ^8 x5 ~a = 1' G7 j+ L* k% B2 {$ i5 t9 z$ Y1 N' k
b = a
" u. H) O8 P4 T. a" Jc = 14 g# S& \! {$ A7 v: j+ R9 M4 R
9 a8 c" B1 {6 R  Y- w
a赋值为1后,b=a执行时并不会将a的值复制一遍,然后赋给b,而是简单地为a所指的值,也就是1建立了一个引用,相当于a和b都是指向包含1这个值的这块内存的指针。所以c=1执行的也是个引用建立,这三个变量其实是三个引用,指向同一个值。这个逻辑虽然简单,不过也还是常常容易弄混,这没关系,Python内置了id函数,可以返回一个对象的地址,用id函数可以让我们知道每个变量指向的是不是同一个值:
$ `2 P# j, S# [' h+ v7 M! C- Gid(a) # 35556792L
+ r/ B! d; Z7 U. _: R) eid(b) # 35556792L
1 l. a- ]3 A  h- V' i6 `& Aid(c) # 35556792L
# {! V) ~0 G7 m2 u3 w. G- D5 `
; {: F6 C7 B. M注释中表示的仍是执行后的结果。如果这时候我们接下面两个语句:" C% l7 u0 `( ?8 r
b = 2 # b的引用到新的一个变量上
) Q, C  E. Z( v% v! F& pid(b) # 35556768L
- H, T, B* p2 Q+ d/ d% g) O% H' y6 W0 D% R1 J% n3 v4 l7 e
可以看到b引用到了另一个变量上。
; K  {; ]. d6 n! Y% H
6 m% p/ f+ ^" }% T9 W) y
2 |  x# J. y: O- `2 N2 u8 Z/ W

: p& a* P' S# L( x  a3 J* D: F: R. y, n! D
; X1 a+ V( t) d9 x' E
, Q  d8 Q" u+ ?! T2 V
' K0 G, ~0 g" S; ?1 Z! V
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

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

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

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

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