Python面向对象

每种语言都需要创建类和对象,Python也不例外。

Python用class创建一个新类:

  class ClassName:

    '类的帮助信息'  #类文档字符串,可以通过ClassName._doc_ 查看此帮助信息

    class_suite     #类体

类的方法与普通的函数有一个区别,那就是必须有一个额外的第一个参数名称,一般为self。

self在定义类的方法时必须有,但调用时不一定要传入相应参数,self代表类的实例,代表当前对象的地址,而self.__class__指向类。

在其他编程语言中,实例化类一般使用new语句,但是Python中没有该语句,一般使用类名称来进行实例化类。

Python可以试用一些函数访问类属性,也拥有一些内置属性:

  • __dict__ : 类的属性(包含一个字典,由类的数据属性组成)
  • __doc__ :类的文档字符串
  • __name__: 类名
  • __module__: 类定义所在的模块(类的全名是'__main__.className',如果类位于一个导入模块mymod中,那么className.__module__ 等于 mymod)
  • __bases__ : 类的所有父类构成元素(包含了一个由所有父类组成的元组)

单下划线、双下划线、头尾双下划线说明:

 

  • __foo__: 定义的是特列方法,类似 __init__() 之类的。

  • _foo: 以单下划线开头的表示的是 protected 类型的变量,即保护类型只能允许其本身与子类进行访问,不能用于 from module import *

  • __foo: 双下划线的表示的是私有类型(private)的变量, 只能是允许这个类本身进行访问了。

Python不允许实例化的类访问私有数据,但你可以使用object._className__attrName访问属性。

基础重载方法

下表列出了一些通用的功能,你可以在自己的类重写:

序号

方法, 描述 & 简单的调用

1

__init__ ( self [,args...] )

构造函数

简单的调用方法: obj = className(args)

2

__del__( self )

析构方法, 删除一个对象

简单的调用方法 : del obj

3

__repr__( self )

转化为供解释器读取的形式

简单的调用方法 : repr(obj)

4

__str__( self )

用于将值转化为适于人阅读的形式

简单的调用方法 : str(obj)

5

__cmp__ ( self, x )

对象比较

简单的调用方法 : cmp(obj, x)

 

posted @ 2017-08-29 01:11  金开仙人  阅读(185)  评论(0)    收藏  举报