美文网首页
Python的类

Python的类

作者: 上发条的树 | 来源:发表于2016-05-13 17:43 被阅读26次

对类的理解

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

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>

相关文章

网友评论

      本文标题:Python的类

      本文链接:https://www.haomeiwen.com/subject/zkhmrttx.html