class <类名>: <语句>
类的私有属性:
__private_attrs 两个下划线开头,声明该属性为私有,不能在类地外部被使用或直接访问。在类内部的方法中使用时 self.__private_attrs
类的方法
在类地内部,使用def关键字能够为类定义一个方法,与通常函数定义不一样,类方法必须包含参数self,且为第一个参数
私有的类方法
__private_method 两个下划线开头,声明该方法为私有方法,不能在类地外部调用。在类的内部调用slef.__private_methodspython
类的专有方法:
__init__ 构造函数,在生成对象时调用
__del__ 析构函数,释放对象时使用
__repr__ 打印,转换
__setitem__按照索引赋值
__getitem__按照索引获取值
__len__得到长度
__cmp__比较运算
__call__函数调用
__add__加运算
__sub__减运算
__mul__乘运算
__div__除运算
__mod__求余运算
__pow__称方编程
class people: '定义人类' #定义基本属性 name = '' age = 0 #定义私有属性 __weight = 0 #定义构造函数 def __init__(self,n,a,w): self.name = n self.age = a self.__weight = w def speak(self): print("%s is speaking :I am %d years old and my weight is %d" %(self.name,self.age,self.__weight)) def __del__(self): print("This is del") p = people('Tom',10,30) print(p.name) # Tom p.speak() #Tom is speaking :I am 10 years old and my weight is 30
面向对象的编程带来的主要好处之一是代码的重用,实现这种重用的方法之一是经过继承机制。继承彻底能够理解成类之间的类型和子类型关系。函数
须要注意的地方:继承语法 class 派生类名(基类名)://... 基类名写做括号里,基本类是在类定义的时候,在元组之中指明的。ui
在python中继承中的一些特色:spa
若是在继承元组中列了一个以上的类,那么它就被称做"多重继承" 。code
语法:对象
派生类的声明,与他们的父类相似,继承的基类列表跟在类名以后,以下所示:继承
class SubClassName (ParentClass1[, ParentClass2, ...]): 'Optional class documentation string' class_suite
关于构造函数:索引
一、若是子类中没有定义 def __init__(),则会调用父类的构造函数。get
二、若是子类中定义了构造函数,则会自动覆盖父类的构造函数。
三、若是想调用父类的构造函数,则须要加上 parent.__init__(self,***)。
关于方法的重写:
class Parent: # 定义父类 def myMethod(self): print '调用父类方法' class Child(Parent): # 定义子类 def myMethod(self): print '调用子类方法' c = Child() # 子类实例 c.myMethod() # 子类调用重写方法