|
⇤ ← Revision 1 as of 2007-03-08 02:28:26
Size: 426
Comment:
|
Size: 2365
Comment:
|
| Deletions are marked like this. | Additions are marked like this. |
| Line 14: | Line 14: |
| '''Class''' 和 '''Type''' 在Py 中有什么区别? | |
| Line 16: | Line 17: |
| * `shhgs <[email protected]>;Mar 7, 2007 2:07 PM`{{{class和type的区别 | |
| Line 17: | Line 19: |
| 打一个比方。在学OO的时候,老师会说,class就是一个模子,往里面浇铁水之后,就有了对象了。 OK,这里就有问题了。你写的代码,相当于工程师设计的图纸,而图纸是没有办法往里面浇铁水的,你得把图纸变成模子,才能往里面浇东西。 于是,你写的代码,定义了一个算法。这个算法别称为class。 你的class,交给type,type根据你的class,加工出一个模子,然后你就可以往里面浇铁水生成instance了。这个type就类似于工厂的生产能力,工艺流程,或者。。。在编程的时候,这个type是语言的一种机制,能把你用代码定义的算法,也就是class,解释成能生成object,或者说instance(其实这个术语更好)的一种object(在解释meta programming的时候,一定要区分instance和object。这也是为什么,我曾经宣称,OOP应该是面向客体的编程。)。 OK,Py的type有很多,你import types然后dir(types)可以看到很多。具体而言,每种type都是一种组织内存的方式。比如说,Python内部表示类的对象,同表示instance的对象,其内部构造是不同的。那么这个内部构造是怎么定义的呢?就是这个type定义的。比如,每个instance都应该有一个dict,有表示其parent的tuple,此外还有初始化的时候,生成的parent类的对象(这部分具体应该问Robert Chen,我菜了)。而class里面可能就没有这么些东西。反正这就是type定义的。 接下来的东西,你可以去看Py in a nutshell了。Alex把福尔摩斯推理的最重要的一页给撕了。我也是琢磨了半天,最后在看Programming Ruby的时候搞懂的。现在给你补齐,应该能看懂了。 }}} |
[http://groups.google.com/group/python-cn/browse_thread/thread/e18f109622b2ef76 哪位大哥知道type 与class 的区别?] -- 引发的深入理解 ::-- ZoomQuiet [DateTime(2007-03-08T02:28:26Z)] TableOfContents
1. 讨论
持续中....
1.1. 问题
Class 和 Type 在Py 中有什么区别?
1.2. 理解
shhgs <[email protected]>;Mar 7, 2007 2:07 PM
