python基础三——面向对象
1.用dir命令可以查看一个对象的所有属性:
s='How are you' #s 被赋值后就是一个字符串类型的变量 l=s.split() #l是一个list类型的变量 dir(s) dir(l)
2.创建类
class Myclass: pass #pass语句表示一个空的代码块 mc=Myclass() print mc
输出结果:<__main__.Myclass instance at 0x01C5BEE0>
表示mc是__main__模块中Myclass类来的一个实例(instance),后面的一串16进制数据表示该对象的内存地址。
class Myclass: name='Sam' def sayHi(self): print 'Hello %s' %self.name mc=Myclass() print mc.name mc.name='Lily' mc.sayHi()
python类中定义的函数一定要有self,self表示当前实例。
3.类的继承
class Vehicle: def __init__(self,speed): self.speed=speed def drive(self,distance): print 'need %f hours' %(distance/self.speed) class Bike(Vehicle): pass class Car(Vehicle): def __init__(self,speed,fuel): #重载__init__函数 Vehicle.__init__(self,speed) self.fuel=fuel def drive(self,distance): print 'need %f fuels' %(distance*self.fuel) b=Bike(15.0) c=Car(80.0,0.012) b.drive(100.0) c.drive(100.0)
函数会在类被创建的时候自动调用,用来初始化类。它的参数,要在创建类的时候提供。于是我们通过提供一个数值来初始化speed的值。
Car类中,我们又重新定义了__init__和drive函数,这样会覆盖掉它继承自Vehicle的同名函数。但我们依然可以通过“Vehicle.函数名”来调用它的超类方法。
以此来获得它作为Vehicle所具有的功能。注意,因为是通过类名调用方法,而不是像之前一样通过对象来调用,所以这里必须提供self的参数值。