美文网首页
python零基础13:类的继承和定制

python零基础13:类的继承和定制

作者: Iphone60Plus | 来源:发表于2020-03-26 15:13 被阅读0次

    类的定制和继承是什么?

    类的继承

    #类的继承
    #广东人属于中国人
    #广东人继承的中国人的属性和方法(黑眼睛、用筷子)
    #继承作用:子类白手起家,直接调用
    

    类的定制

    #类的定制
    #子类不但继承了父类属性和方法,还可以修改父类的属性和方法
    #子类还可以有自己的属性和方法
    #类定制作用:以我为主,为我所用
    

    类的继承要怎么写?

    继承基础语法

    class Chinese:#父类,无括号向上无父类
        pass
    
    class Cantonese(Chinese):#创建继承,首字母大写
        pass
    
    gonger = Chinese()#父类创建实例
    yewen = Cantonese()#子类创建实例
    
    #子类创建的实例同时也属于父类
    print('\n验证1:子类创建的实例同时也属于父类')
    print(isinstance(gonger,Chinese))  
    print(isinstance(yewen,Chinese))  
    
    #父类创建的实例不属于子类
    print('\n验证2:父类创建的实例不属于子类。')
    print(isinstance(gonger,Cantonese))
    
    #类创建的实例都属于根类
    print('\n验证3:类创建的实例都属于根类。')
    print(isinstance(gonger,object))  
    print(isinstance(yewen,object))
    

    继承之多层继承

    class Earthman:
        eye_number = 2
    
    # 中国人继承了地球人
    class Chinese(Earthman):
        eye_color = 'black'
    
    # 广东人继承了中国人,同时也继承了地球人。
    class Cantonese(Chinese):
        pass
    
    # 子类可调用所有父类的属性和方法
    yewen = Cantonese()
    print(yewen.eye_number)
    print(yewen.eye_color)
    

    继承的多重继承

    class Su:
        born_city = 'Jiangsu'
        wearing = 'thick'  # 穿得较厚
    
        def diet(self):
            print('我们爱吃甜。')
    
    class Yue:
        settle_city = 'Guangdong'
        wearing = 'thin'  # 穿得较薄
    
        def diet(self):
            print('我们吃得清淡。')
    
    # 就近原则,多重继承。
    class Yuesu(Yue,Su):
        pass
    
    xiaoming = Yuesu()
    print(xiaoming.wearing)
    print(xiaoming.born_city)
    xiaoming.diet()
    

    类的定制要怎么写

    定制,可以新增代码

    class Chinese:
        eye = 'black'
    
        def eat(self):
            print('吃饭,选择用筷子。')
    
    class Cantonese(Chinese):  # 类的继承
        native_place = 'guangdong'  # 类的定制,定制属性
    
        def dialect(self):  # 类的定制,定制方法
            print('我们会讲广东话。')
    
    yewen = Cantonese()
    print(yewen.eye)
    # 父类的属性调用
    print(yewen.native_place)
    # 子类的定制属性也能用
    yewen.eat()
    # 父类的方法能用
    yewen.dialect()
    # 子类的定制方法也能用
    

    定制,也可以重写代码

    gonger = Chinese()
    yewen = Cantonese()
    gonger.land_area(96)
    yewen.land_area(960)
    
    class Chinese:
        def land_area(self,area):
            print('我们居住的地方,陆地面积是%d万平方公里左右。'% area)
    
    class Cantonese(Chinese):
        # 直接对方法进行重写
        def land_area(self,area):
            print('我们居住的地方,陆地面积是%d万平方公里左右。'% int(area*0.0188))
    
    gonger = Chinese()
    yewen = Cantonese()
    gonger.land_area(96)
    yewen.land_area(90)
    
    class Chinese:
        def __init__(self, greeting='你好', place='中国'):
            self.greeting = greeting
            self.place = place
    
        def greet(self):
            print('%s!欢迎来到%s。' % (self.greeting, self.place))
    
    # 请为子类完成定制,代码量:两行。
    class Cantonese(Chinese):
        def __init__(self,greeting='雷猴', place='广东'):
            Chinese.__init__(self,greeting,place)
    
    yewen = Cantonese()
    yewen.greet()
    

    相关文章

      网友评论

          本文标题:python零基础13:类的继承和定制

          本文链接:https://www.haomeiwen.com/subject/rkcquhtx.html