一、id,is,==, x8 @# w/ w# W+ q
Python中一切皆对象。对象包含三个要素,id、type、value。 ( x0 o5 C: |& f3 M! T; S. O$ U8 K m. y+ b6 i6 z1 C! B; W
id 是对象的内存地址。每当我们创建一个对象的时候都会在内存中开辟一块空间,将这个对象的数据临时存放到内存中,id就是这个空间的唯一标号,就好比身份证号。- g5 Q+ P4 p2 x: `' E
0 {: a, F5 q2 N" etype 是对象的数据类型。包括 int(包括long)、float、string、list、tuple、dict、bool和NoneType 等。1 Y% \+ l! _/ D$ p' v2 ]
: x* [ A6 M: A& I5 z" R
value 是对象指向的内存地址中存放的具体的值。$ B; H2 u f' K' x0 G
. ^4 D+ C) F! h; n" J
因为在对象具有这些要素,所以我们用 is 和 == 两个表达式来判断两个对象是否”相等“0 \$ Q) A, o* y T! A) A5 J
$ l0 T k* H2 G& b
is 用于比较两个对象的地址(也就是 id)是否相同,而 == 用于比较两个对象引用的值是否相同 : b* f9 o9 c+ {* ]% k" V2 Q3 R
9 j7 h9 Z6 N5 I3 W, N+ e( E. Z我们也可以用身份证来理解:每个人都相当于一个对象,而身份证号(id)就唯一标识了世界上的每一个人;可能会存在姓名(value)相同(譬如两个人都叫阿玮),而身份证号不同的两个人。所以说如果内存地址相同,那么值肯定相同;但是如果值相同,内存地址不一定相同。 . o* m$ \" y2 G$ G" R& q) {9 z& Q + g2 ^. ~5 \+ L/ v( V( x& o( L1 P二、代码块 - ?$ d X7 Z, v) `! aPython程序是由代码块构造的。块是一个 Python 程序的文本,他是作为一个单元执行的 . M; m2 q2 g- F+ M6 V8 `, a& D; Z4 [5 Q. ?+ i% ?$ w: e
代码块:一个模块,一个函数,一个类,一个文件等都是一个代码块 ! g' Y' G2 z A1 G' T3 a5 d : L# ^6 F2 M5 ~8 }5 A, m% d而作为交互方式输入的每个命令都是一个代码块(如在 iPython)环境中,如:1 K3 N2 ?( r0 n; u1 C @, r! G" i' U, ?3 b% o