首页 / PYTHON / Python笔记-5_下
Python笔记-5_下
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Python笔记-5_下,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4394字,纯文字阅读大概需要7分钟。
内容图文
一、三大特性之类的继承
class Animal:
type = "哺乳动物"
def __init__(self,name,age,sex):
self.name = name
self.age = age
self.sex = sex
def eat(self):
print('%s is eating...' % self.name)
class Person(Animal): #括号里是继承父类,父类的名字
type = '高等哺乳动物'
def talk(self):
print('person %s is talking...' % self.name)
def eat(self):
print('%s在优雅的吃饭...' % self.name)
class Dog(Animal):
def eat_shit(self): #子类自己的方法
print('dog %s is eat shit' % self.name)
p = Person('jack',16,'M')
print(p.type)
p.eat()
p.talk()
d = Dog('憨憨',2,'M')
print(d.type)
d.eat()
d.eat_shit()
父类
子类
重写父类方法
父类和子类的方法同时运行
class Animal:
type = "哺乳动物"
def __init__(self,name,age,sex):
self.name = name
self.age = age
self.sex = sex
def eat(self):
print('%s is eating...' % self.name)
class Person(Animal): #括号里是继承父类,父类的名字
type = '高等哺乳动物'
def talk(self):
print('person %s is talking...' % self.name)
def eat(self):
Animal.eat(self) #先执行父类的eat
print('%s在优雅的吃饭...' % self.name)
class Dog(Animal):
def eat_shit(self): #子类自己的方法
print('dog %s is eat shit' % self.name)
p = Person('jack',16,'M')
p.eat()
利用__init__来执行父类的和子类的方法
class Animal:
type = "哺乳动物"
def __init__(self,name,age,sex):
self.name = name
self.age = age
self.sex = sex
def eat(self):
print('%s is eating...' % self.name)
class Person(Animal): #括号里是继承父类,父类的名字
def __init__(self,name,age,sex,hobby):
Animal.__init__(self,name,age,sex)
self.hobby = hobby
def talk(self):
print('person %s is talking...' % self.name)
def eat(self):
print('%s在优雅的吃饭...' % self.name)
class Dog(Animal):
def eat_shit(self): #子类自己的方法
print('dog %s is eat shit' % self.name)
p = Person('jack',16,'M','Security')
print(p.name,p.sex,p.hobby)
利用super函数
super(自己类的名字).__init__(xxx)
class Animal:
type = "哺乳动物"
def __init__(self,name,age,sex):
self.name = name
self.age = age
self.sex = sex
def eat(self):
print('%s is eating...' % self.name)
class Person(Animal): #括号里是继承父类,父类的名字
def __init__(self,name,age,sex,hobby):
super(Person,self).__init__(name,age,sex) #super里是自己类的名字
self.hobby = hobby #再加上子类的属性
def talk(self):
print('person %s is talking...' % self.name)
def eat(self):
print('%s在优雅的吃饭...' % self.name)
class Dog(Animal):
def eat_shit(self): #子类自己的方法
print('dog %s is eat shit' % self.name)
p = Person('jack',17,'M','Security')
print(p.name,p.age,p.sex,p.hobby)
super().init_ 用这种方法的多!!!
class Animal:
type = "哺乳动物"
def __init__(self,name,age,sex):
self.name = name
self.age = age
self.sex = sex
def eat(self):
print('%s is eating...' % self.name)
class Person(Animal): #括号里是继承父类,父类的名字
def __init__(self,name,age,sex,hobby):
super().__init__(name,age,sex) #调用的还是父类的方法
self.hobby = hobby #再加上子类的属性
def talk(self):
print('person %s is talking...' % self.name)
def eat(self):
print('%s在优雅的吃饭...' % self.name)
class Dog(Animal):
def eat_shit(self): #子类自己的方法
print('dog %s is eat shit' % self.name)
p = Person('jack',18,'M','Security')
print(p.name,p.age,p.sex,p.hobby)
二、多继承
基础
class Shenxian:
def fly(self):
print('神仙飞~...')
class Monkey:
def eat_peatch(self):
print('Monkeys like to eat peatch...')
class MonkeyKing(Shenxian,Monkey):
def play_goden_stick(self):
print('孙悟空玩金箍棒...')
m = MonkeyKing()
m.play_goden_stick()
m.eat_peatch()
m.fly()
三、封装
一些内部属性,外部没法读取、修改。
只需要在前面加上__(俩下划线)
class Person(object):
def __init__(self,name,age):
self.name = name
self.age = age
self.__life_val = 100 #加俩_变成私有属性,外部无法访问
def get_life_val(self):
print('生命值:%s' % self.__life_val)
return self.__life_val
def __breath(self): #私有方法,外部也同样无法访问
print('%s is breathing...' % self.name)
def got_attack(self):
self.__life_val -= 20
self.__breath()
print('被攻击了 -20血')
return self.__life_val
p = Person('jack',11)
p.get_life_val()
p.got_attack()
突破限制,进行访问,修改
class Person(object):
def __init__(self,name,age):
self.name = name
self.age = age
self.__life_val = 100 #加俩_变成私有属性,外部无法访问
def get_life_val(self):
print('生命值:%s' % self.__life_val)
return self.__life_val
def __breath(self): #私有方法
print('%s is breathing...' % self.name)
def got_attack(self):
self.__life_val -= 20
self.__breath()
print('被攻击了 -20血')
return self.__life_val
p = Person('jack',11)
p.get_life_val()
p.got_attack()
#对封装的破解
p._Person__breath()
p._Person__life_val = 10
p.get_life_val()!
内容总结
以上是互联网集市为您收集整理的Python笔记-5_下全部内容,希望文章能够帮你解决Python笔记-5_下所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。