私有方法,私有属性
都是在定义名字时在名字前加两个“下划线”
私有方法
class dog:
#私有方法
def __sendmsg(self):
print('发短信')
#公有方法
def sendmsg(self):
print('发发发')
公私方法的区别:在添加对象之后,外部只能调用公有方法而不能调用私有方法
→具体应用:付费短信
class dog:
#私有方法
def __sendmsg(self):
print('发短信')
#公有方法
def sendmsg(self,money):
if money>10:
self.__sendmsg()
else:
print('发你个头,没钱了穷鬼')
即私有方法只能由类的内部方法使用
昨天的继承中,私有方法与私有属性并不会被继承,即父类的私有方法与私有属性不能被子类主动调用
(即父类的小秘密,子类不能知道)
!!!注意!!!
但如果父类的某个公有方法中有调用自己的私有方法,子类继承的时候调用那个公有方法的时候是允许使用的
class a:
def __init__(self):
self.num1=1
self.__num2=2
def __test1(self):
pass
#可被子类继承且使用
def test2(self):
self.__test1()
print(self.__num2)
class b(a):
def test3(self):
#错误,调用的话会崩
self.__test1()
print(self.__num2)
多继承
之前的继承都是单继承
多继承即
class ma:
def aaa(self):
pass
class lv:
def bbb(self):
pass
class luozi(ma,lv):
pass
即骡子继承了马和驴的功能
多继承注意点:
调用一个方法的时候,(如果有方法名相同时)搜索方法在哪个类的 顺序路径为——子类→父类1→父类2→父类3→。。。→父类的父类(以此类推)
如果非要用特定的类中的方法(即按以上顺序顺位不到),参考昨天单继承中的“调用被重写的原方法”
python三要素:封装,继承,多态
多态——即在程序执行的时候才确定要做什么
今天断网了= =,明天看多些
2020/1/22/9:50