• python面向对象--私有和继承


    一、 私有属性和私有方法

    应用场景

    在实际开发中,对象的某些属性或方法可能只希望在对象的内部使用,而不希望在外部被访问到

    私有属性 就是 对象 不希望公开的属性 (属性即类里面的变量)

    私有方法 就是 方法 不希望公开的方法

    定义方式

    在定义属性或方法时,在属性名或者方法名前添加两个下划线,定义的就是私有属性或方法,只能在类里面用。

    class My:
        def test(self):
            self.__password = 123456  #私有属性
        def say(self):
            print('password',self.__password)
        def __set_password(self):  #私有方法
            self.__password = 7890
        def update(self):
            self.__set_password()
    
    m = My()
    m.test() #无输出结果
    m.say() #输出:password 123456
    m.update() #无输出结果
    m.say() #输出:password 7890

    参考:https://www.2cto.com/os/201807/763010.html

    二、继承

    子类继承自父类,可以直接享受父类中已经找到封装好的方法

    子类中应该根据自己的需求,封装子类特有的属性和方法

    单继承

    1,继承的概念 语法和特点

    继承的概念:子类拥有父类的所有方法和属性(子类只需封装自己特有的方法和属性)

    2,继承的语法

    class 类名(父类)

    def 子类特有的方法

    class Lm:
        money = 1000000
        house = 5
        def driver(self):
            print('会开车')
    
    class Mcb(Lm):
        def about_me(self):
            print('我有 %s 钱 ,%s 房子'%(self.money,self.house))
            self.driver()
    
        def driver(self):
            print('会开28个轮子的汽车')
    
    
    m = Mcb()
    m.driver() #输出:会开28个轮子的汽车
    m.about_me()
    #以上代码输出:
    会开28个轮子的汽车
    我有 1000000 钱 ,5 房子
    会开28个轮子的汽车

    3. super().方法名():在父类某个方法的基础上增加新功能

    class Car: #父类
        def run(self):
            print('running...')
            return 'abc'
    
    class NewCar(Car): #子类
        def run(self):
            # 沿用父类中的功能的同时,再增加下面的新功能
            res =super().run()  #super()的意思就是找到父类,等同于Car().run()
            print('fly...') #增加的父类中没有的功能
            print(res)
    
    bmw=NewCar()
    bmw.run()
    #以上代码输出结果如下:
    running...
    fly...
    abc

    继承的传递性:(爷爷 父亲 儿子)

    1,C类从B类继承,B类又从A类继承

    2,那么C类就具有B类和A类的所有的属性和方法

    子类拥有父类以及父类的父类中封装的所有的属性和方法

    参考:https://www.2cto.com/os/201807/763010.html

  • 相关阅读:
    【BZOJ2329】括号修复(splay)
    连接数据库
    文件锁
    带进度条的输入流
    文件对话框
    使用Scanner来解析文件
    IO流(数据流
    IO流(随机流,数组内存流
    IO流文件字符输入输出流,缓冲流
    IO流(文件字节输入输出
  • 原文地址:https://www.cnblogs.com/denise1108/p/10257476.html
Copyright © 2020-2023  润新知