15、人工智能Python基础之面向对象_多继承、多态、私有属性的处理_笔记# 继承与多态# 基类、父类、超类# python的多继承与重写(多态性)# 私有属性:双下划线__开头 外部不能通过'对象名.属性名'来访问或者更改 实际将其转化为了'_类名__属性名'# 私有属性在类里面是正常使用 如果外部实在要修改私有属性 则需要预留一个方法修改私有属性# 强制访问私有属性:实例对象名._类名__私有属性 但是不建议这样操作,不同版本的Python解释器可能会把'__私有属性名'改成不同的变量名,# 总而言之,Python本身没有任何机制阻止你干坏事,一切靠自觉# 通过'对象名.__私有属性名'直接修改私有属性,表面上看好像修改了其实并没有,因为Python解释器已经将对象内部的# 属性名解释成'_类名__属性名' 如果在外边修改相当于另外申明了一个属性# -*- coding: utf-8 -*-__author__ = 'dongfangyao'__date__ = '2018/1/15 下午3:59'__product__ = 'PyCharm'__filename__ = 'oo2'# 封装 继承 多态class A(): def a(self): print('我是A类里面的a方法')class B(): def a(self): print('我是B类里面的a方法') def b(self): print('我是B类里面的b方法')class C(): def c(self): print('我是C类里面的c方法')class D(A, B, C): def __init__(self, name, address): self.name = name self.__address = address def d(self): print('我是D类里面的d方法') def c(self): print('我的D类里面的c方法'+self.__address) def get_address(self): return self.__addressdd = D('dfy', 'hunan')dd.a()dd.b()dd.c()dd.d()print(dd.get_address())# 强制访问私有属性# print(dd._D__address)dd.__address = 'beijing'print(dd.__address)print(dd.get_address() + '这才是真正的私有属性')print(dd.__dict__)复制代码