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个轮子的汽车

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

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

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

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

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

原文地址:https://www.cnblogs.com/denise1108/p/10257476.html

时间: 2024-11-09 10:49:01

python面向对象--私有和继承的相关文章

18.Python面向对象之:继承

一:什么面向对象的继承? 比较官方的说法就是: 继承(英语:inheritance)是面向对象软件技术当中的一个概念. 如果一个类别A“继承自”另一个类别B,就把这个A称为“B的子类别”, 而把B称为“A的父类别”也可以称“B是A的超类”.继承可以使得子类别 具有父类别的各种属性和方法,而不需要再次编写相同的代码.在令子 类别继承父类别的同时,可以重新定义某些属性,并重写某些方法,即覆 盖父类别的原有属性和方法,使其获得与父类别不同的功能.另外,为子类 别追加新的属性和方法也是常见的做法. 一般

python面向对象--封装,继承,多态

1.创建类 class ClassName: ''' 定义类 ''' def __init__(self,name,age):#self代表类的实例,而不是类本身 ''' 类初始化函数 :param name:姓名 :param age: 年龄 ''' self.name=name self.age=age def Class_method(self): ''' 类中的方法 :return: ''' pass 2.类实例化,创建类的对象 c_name1=ClassName('zhangsan',

47、Python面向对象中的继承有什么特点?

继承的优点: 1.建造系统中的类,避免重复操作. 2.新类经常是基于已经存在的类,这样就可以提升代码的复用程度. 继承的特点: 1.在继承中基类的构造(__init__()方法)不会被自动调用,它需要在其派生类的构造中亲自专门调用.有别于C# 2.在调用基类的方法时,需要加上基类的类名前缀,且需要带上self参数变量.区别于在类中调用普通函数时并不需要带上self参数 3.Python总是首先查找对应类型的方法,如果它不能在派生类中找到对应的方法,它才开始到基类中逐个查找.(先在本类中查找调用的

python 面向对象三大特性--继承

一.什么是继承 继承是一种创建新类的方式,在python中,新建的类可以继承一个或者多个父类,父类又可以称为基类活超类,新建的类称为派生类或子类. python中类的继承分为:单继承和多继承 class ParentClass1: #定义父类 pass class ParentClass2: #定义父类 pass class SubClass1(ParentClass1): #单继承,基类是ParentClass,派生类是SubClass pass class SubClass2(ParentC

Python 面向对象 --- 私有属性和私有方法

01,应用场景及定义方式 应用场景 在实际开发中,对象 的 某些属性或方法 可能只希望 在对象的内部被使用,而 不希望被外部访问到 私有属性 就是 对象 不希望公开的 属性 私有方法 就是 对象 不希望公开的 方法 定义方式 在 定义属性或方法时,在 属性名或者方法名前 增加连个下划线,定义的就是 私有 属性或方法 class Women: def __init__(self, name): self.name = name self.__age = 18 # def __secret(self

Python 面向对象 之 多继承 MRO

关于子类的继承. 在子类初始化的时候, 是需要手动调用父类的初始化方法来说明的, 语法为: **父类名.__ init__(self, ...)** 多继承 - Bug 这里主要演示一个, 多继承会出现的问题, 其实也不算bug吧, 原理我也没有仔细去推敲过哈, 先露出来看看吧. class 父亲: def __init__(self, name): self.name = name print("i am you father...") class 长子(父亲): def __ini

Python 面向对象(下)

本篇博客承接自Python 面向对象(上) 四. 继承,实现,依赖,关联,聚合,组合 待补充 参考资料: https://www.cnblogs.com/chinxi/p/7349768.html 五. 特殊成员 待补充 参考资料: 类中的特殊成员方法 待补充 参考资料: https://www.cnblogs.com/chinxi/p/7349768.html 五. 特殊成员 待补充 参考资料: 类中的特殊成员方法 六. issubclass,type,isinstence各自的用法和区别 1

python面向对象super函数

python面向对象super函数 待办 python面向对象可以多继承,同时集成的两个类继承自同一个父类的时候初始化问题,提前定义初始顺序,如果有相同的就按顺序初始化,不要把super理解成父类 https://blog.csdn.net/robinjwong/article/details/48369615 原文地址:https://www.cnblogs.com/lishikai/p/12382320.html

Python面向对象 --- 新旧式类、私有方法、类属性和类方法、静态方法

一.Python面向对象中的新旧式类 1)新式类(推荐使用):在定义类时,类后边括号里要继承基类(object).在python3.x中若没有指定父类,会默认使用的是object作为基类:在python2.x中,若没指定父类,则不会以object作为基类. 2)旧式类(经典类):在定义类时,类后边括号中不用继承object类,甚至不用括号. 3)dir方法是用来查看类的内置方法. 二.私有方法和属性 1)私有属性是对象不希望公开的属性:私有方法是对象不希望公开的方法.在定义私有属性和方法时,在属