Python的类

对类的理解

所谓的类,就我理解,是带有属性如身高、体重和方法如吃饭、睡觉等方法的一个模板。
下面是伪代码:

class 人:
    身高 = 175
    体重 = 64
    皮肤 = yellow
    吃饭( )
    睡觉( )
    打豆豆( )

根据这个类创建一个对象:

我 = 人( )

设置这个对象的属性:

我 . 身高 = 175

调用这个对象的方法:

我 . 吃饭( )

Python中的类

Python在2.x中,是有新式类和旧式类(经典类)之分。新式类是2.2之后引进。现在我们一般使用新式类。

旧式类:

>>> class AA:
...     pass
... 

实例化:

>>> aa = AA()

旧式类分析

>>> type(AA)
<type 'classobj'>
>>> aa.__class__
<class __main__.AA at 0x10ac3d9a8>
>>> type(aa)
<type 'instance'>
  • type(AA):查看类AA的类型,返回的是'classobj'
  • aa.class:aa是一个实例,也是一个对象,每个对象都有class属性,用于显示其类型。这里返回的结果是<class main.AA at 0x10ac3d9a8>,说明aa是AA的实例,并且类AA在内存中的地址是0x10ac3d9a8。
  • type(aa):是要看实例aa的类型,结果是'instance',说明它的类型是一个实例。

aa.class和type(aa),都可以查看对象的类型,但是结果却不同,有些别扭。
在Python中,整数也属于对象,看如下例子:

>>> a = 7
>>> a.__class__
<type 'int'>
>>> type(a)
<type 'int'>

为何这里整数用两种方式查看就一样了呢,而旧式类返回就不一样。因此,就有了新式类。

新式类

>>> class BB(object):
...     pass
... 
>>> bb = BB()

>>> bb.__class__
<class '__main__.BB'>
>>> type(bb)
<class '__main__.BB'>

可以看到,新式类返回一致了。

不管是新式类还是旧式类,都可以查看对象类型,具体如下:

>>> print aa
<__main__.AA instance at 0x10ac69440>
>>> print bb
<__main__.BB object at 0x10ac63a50>
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容