- 论坛徽章:
- 0
|
Python的对象理解:同一name,不同对象的理解
>;>;>; class test: pass
>;>;>; a=test()
>;>;>; a
<__main__.test instance at 0x009126E8>;
>;>;>; b=a
>;>;>; b
<__main__.test instance at 0x009126E8>;
>;>;>; b=test()
>;>;>; b
<__main__.test instance at 0x00A91EB8>;
>;>;>; a=test()
>;>;>; a
<__main__.test instance at 0x00AA4558>;
>;>;>; a=test()
>;>;>; a
<__main__.test instance at 0x009126E8>;
>;>;>;
绿色部分:a,b都是指向同一个对象,也就说a,b是一个对象;
蓝色部分:a,b指向不同的对象,两种不同的同类对象;
红色部分:a,a指向不同的对象,同名但不同类,不过第一个a已经不能定位了。
以下引用牛人(没劲)的解释:
梅劲松 13:49:28class test是描述一个对象的代码,我们叫类a=test()是一个test对象。如果b=a了,那么他们就是同一个对象。如果a=test()b=test()那么就是不同的对象了,就象男人是属于人类,但是任何两个男人都不相等。
梅劲松 13:49:58a=test()b=a就是一个人。a=test()b=test()是两个人。
梅劲松 13:51:00test()你可以理解为你出生的那一瞬间。你可以有两个名字,但是是同一个人。但是两个婴儿即使是有同样的名字,却是两个不同的人。
呵呵,原文放在我的blog上http://blog.chinaunix.net/articl ... 650&blogId=1537 |
|