Python中的对象和动态性 [菜鸟的理解,高手莫入]

当我们谈到python时常常会说python中一切都是对象,字符串是对象,整数型是对象,标准库中的对象当然也是对象,class本身也是对象,类型(type)也是对象。

但是初学的时候会错误地认为,既然大家都是对象,那么应该都是一样的“众生平等”啦。非也非也,尽管都是对象,每个对象支持的方法和属性还是很不一样的啦。

 

就拿int和自定义的类型来说吧。

 

image

 

int型是python语言的原始类型,上图中所见的就是它所支持的所有操作,如加减乘除,移位,取反等等。

 

除了面向对象这个特点,Python的另一个特点是它是一种动态语言。好吧,亲,我们来给int对象加上一个自定义属性,何如?

 

image

 

肿么啦,看起来不灵啊。好吧,我们自己建个类型来试试看。

image

 

自定义类型Object是个空类型,是一穷二白的状态。没关系,我们来整整。

 

image

 

现在obj已经加上了一个叫做name的属性,再来加上方法吧。

 

image

 

我选择了给类Object加上方法,当然如果你喜欢也可以只给obj实例添加一个方法。方法echo没有做什么石破天惊的事情,

仅仅输出了自己的名字。

 

一个Object显得有些孤单,我们给他制造个兄弟吧,然后让他兄弟也echo一把。

image

 

呀,肿么回事?哦,这个兄弟没有name属性啊,因为之前我们仅仅给他哥哥取了名字。来,接着整。

给类型Object加上name属性,然后看看obj2和obj。

 

image

 

结果如上,一切尽在掌握之中,嘿嘿。通过上面的例子,你应该懂了Python的动态性了(部分而已)。是吧,元芳?!

posted @ 2013-05-16 16:41  BruceJia  阅读(1795)  评论(3编辑  收藏  举报