day6 类

 1 #定义一个类
 2 
 3 class Person: #老式类
 4     pass
 5 
 6 class Person(object):#新式类 主要区别是多继承老式类是深度查找 新式类是广度查找
 7 
 8     money = 1500 #类变量  用用途大家共用的属性 节省内存开销
 9     def __init__(self,name,age):
10         #构造函数  在实例化的时做一些初始化的工作  比如:传参
11         self.name = name
12         self.age = age
13 
14     def __del__(self):
15         #在实例释放、销毁的时候自动执行的,通常用于做一些收尾工作, 如关闭一些数据库连接,关闭打开的临时文件
16         pass #print("%s 要挂了...")
17 
18     def eat(self):
19 
20         print('%s出生就可以吃东西'%self.name)
21 
22     def sleep(self):
23 
24         print('$s出生就可以睡觉'%self.name)
25 
26 r1 = Person('xiaoming','23') #在实例化的时会自动运行类里面的init方法 所以就这个时必须得传两个参数
27 
28 r1.name #调用属性
29 
30 r1.name = 'laozhang' #修改实例属性
31 
32 r1.money  #用实例的对象来调类属性  注意不能用实例对象来做修改
33 
34 Person.money #用类名来调用类属性 可以直接修改

继承

 1 class Person(object):
 2     def __init__(self,name,sex):
 3 
 4         self.name = name
 5         self.sex = sex
 6 
 7     def eat(self):
 8 
 9         print('%s 出生的时候是 %s' %(self.name,self.sex))
10 
11 class Relation(object):
12     # def __init__(self,n1,n2):
13     #     print("init in relation")
14     def make_friends(self,obj): #w1
15         print("%s is making friends with %s" % (self.name,obj.name))
16 
17 #在python3 里面是广度查找  python2是深度查找
18 class man(Relation,Person): #多继承 注意前后顺序  主要是init初始化需要用到的属性
19 
20     def piao(self):
21 
22         print('$s会piao'%self.sex)
23 
24 class woman(Person):
25     #重构父方法
26     def __init__(self,name,sex,mony):
27         #Person.__init__(self,name,sex)  #老式写法
28         super(woman,self).__init__(name,sex) #新式写法
29         self.mony = mony
30 
31     def birth_child(self):
32 
33         print('%人会生孩子'%self.sex)
34 
35 m = man('xiao','男人')
36 
37 w = woman('xiaodhong','女人',1500)
38 print('%s name %s sex %smony'%(w.name,w.sex,w.mony))
39 
40 m.make_friends(w) 

多态

class Person(object):
    def __init__(self,name):
        self.name = name

    @staticmethod    #在父类方法里面实现多态
    def sleep(obj):
        obj.sleep()

class man(Person):

    def sleep(slef):
        print('%s会睡觉'%slef.name)

class woman(Person):

    def sleep(self):
        print('%s会1睡觉'%self.name)

m = man('man')

w = woman('woman')

#多态一种接口,多种实现
Person.sleep(m)
Person.sleep(w)

 

posted @ 2018-03-09 11:25  战胜自已  阅读(114)  评论(0编辑  收藏  举报