码迷,mamicode.com
首页 > 其他好文 > 详细

pyhon类继承

时间:2018-01-11 22:31:18      阅读:201      评论:0      收藏:0      [点我收藏+]

标签:gpo   多个   person   函数   tom   代码   继承   mil   on()   

1,python类的继承

class A(object):
    name =‘eason‘
    age = ‘22‘
    def __init__(self):
        print ‘我是A的构造函数!!!‘
    def getname(self):
        return self.name
    def getage(self):
        return self.age

class B(object):
    name = ‘linsir‘
    age=‘30‘
    def __init__(self):
        print ‘我是B的构造函数!!!‘
    def getname(self):
        return self.name
    def getage(self):
        return self.age

class C(A,B):
    def __init__(self):
        print  ‘我是我自己的构造函数‘
        #调用父类的构造函数
        super(C,self).__init__()
    name = ‘testsir‘
    age = ‘25‘

person1 = C()
print person1.getname()
print person1.getage()

运行结果:
我是我自己的构造函数
我是A的构造函数!!!
testsir
25

 

子类如果没有构造函数,默认会使用父类的构造函数,如果继承多个父类,看哪个父类写在前面就调用哪个父类的构造。

C继承了A和B ,所以A和B为C的父类或者说是基类。

A和B为C的子类,或者说是AB的派生类。

调用父类的第一个方法:可以用super函数。super(son,self).__init__()
 
调用父类的第二个方法:父类.方法名(self),不建议使用,因为如果有多个调用父类的方法的代码,如果类的名称一旦发生变化,则意味这后面调用父类的方法的代码都得变。
 
2,python方法重写
class father(object):
    def __init__(self):
        self.name = ‘tom‘
        print ‘father‘

    def func(self):
        print ‘father.func‘

    def bad(self):
        print ‘father抽烟喝酒 ‘

class son(father):
    def __init__(self):
        super(son,self).__init__()
        print ‘son‘

    def sonc(self):
        print ‘son.sonc‘

    #重写bad函数,不在使用父类的函数。如果想调用父类的函数,可以用super执行父类的方法。
    def bad(self):
        #调用
#       super(son, self).bad()
#         father.bad(self)
        print ‘son赌博‘
son1 = son()
son1.sonc()
son1.bad()


运行结果:
father
son
son.sonc
son赌博

  

son1 = son()实例化一个对象出来,调用bad方法,由于子类已经有bad方法,故无需重父类调用,即达到父类方法的重写功能。

 
 



 

pyhon类继承

标签:gpo   多个   person   函数   tom   代码   继承   mil   on()   

原文地址:https://www.cnblogs.com/lin1/p/8270403.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!