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的参数值。

原文地址:https://www.cnblogs.com/wy1290939507/p/4747350.html