首页 / PYTHON / python类的基础知识2
python类的基础知识2
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python类的基础知识2,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3560字,纯文字阅读大概需要6分钟。
内容图文
10.10 实例属性的更改
10.10.1 在类的外部做实例属性的修改
class DogInfo(object):
def __init__(self,leg):
#初始化操作,定义的是属性,实例属性
self.leg = leg
def bark(self):
#在方法中调用实例属性
print(self.leg)
print('狗会叫')
def showleg(self):
print('这条狗的腿有',self.leg,'条')
def __str__(self):
return '狗'
dog = DogInfo(4)
print('更改之前的实例属性',dog.leg)
print('做完移植')
dog.leg = 5
print('更改之后的实例属性',dog.leg)
dog.showleg()
展示
更改之前的实例属性 4
做完移植
更改之后的实例属性 5
这条狗的腿有 5 条
10.10.2 在类的内部做修改
class DogInfo(object):
def __init__(self,leg):
#初始化操作,定义的是属性,实例属性
self.leg = leg
def bark(self):
#在方法中调用实例属性
print(self.leg)
print('狗会叫')
def change_leg(self,newleg):
self.leg = newleg
def showleg(self):
print('这条狗的腿有',self.leg,'条')
def __str__(self):
return '狗'
dog = DogInfo(4)
print('更改之前的实例属性',dog.leg)
print('做完移植')
dog.change_leg(5)
print('更改之后的实例属性',dog.leg)
dog.showleg()
展示:
更改之前的实例属性 4
做完移植
更改之后的实例属性 5
这条狗的腿有 5 条
10.11 继承
10.11.1 继承
class ChickenSoup(object):
'''祖传鸡汤(爷爷的秘方)'''
def __init__(self):
self.name = '祖传鸡汤'
def cook(self):
print('做法:田园鸡500g 大料 40g 盐10g')
class NewChickenSoup(ChickenSoup):
'''爷爷传给父亲的,父亲的秘方'''
def __init__(self):
self.name = '祖传鸡汤2.0版本'
pass
new = NewChickenSoup()
new.cook()
print('鸡汤的名字',new.name)
注意点:
1、继承关系中,子类继承父类的方法与属性
即:子类可以使用父类的属性和方法
2、如果子类的方法与父类是同名的,使用子类自己的属性
3、如果子类已经有自己的__int__这个方法,没有特殊操作,不能直接调用父类的属性
10.11.2 多继承
class NewChickenSoup(ChickenSoup,NewEast):
'''爷爷传给父亲的,父亲的秘方'''
def __init__(self):
super(NewChickenSoup, self).__init__()
self.name1 = '祖传鸡汤2.0版本'
pass
注意点:
当前类继承于多个类,多个类写在括号中
10.11.3 多层继承
class NewEast(object):
def bbq(self):
print('烧烤秘方')
def birdsoup(self):
print('鸽子汤')
class NewChickenSoup(ChickenSoup,NewEast):
'''爷爷传给父亲的,父亲的秘方'''
def __init__(self):
super(NewChickenSoup, self).__init__()
self.name1 = '祖传鸡汤2.0版本'
pass
NewChickenSoup -------> NewEast -------> object
父类---子类 基类---派生类
10.11.4 查找顺序
print(NewChickenSoup.__mro__)
(<class '__main__.NewChickenSoup'>, <class '__main__.ChickenSoup'>, <class '__main__.NewEast'>, <class 'object'>)
注意点:
多继承的查找顺序与继承的类的位置有关系
10.11.5 继承的权限问题
在继承的时候,有些属性和方法,不想被子类所继承,设置权限
私有属性与私有方法
class NewEast(object):
def __init__(self):
self.__money = '2亿'
def bbq(self):
print('烧烤秘方')
def birdsoup(self):
print('鸽子汤')
class NewChickenSoup(NewEast):
def cook(self):
print('做法:田园鸡500g 大料 40g 盐10g 孜然50g')
new = NewChickenSoup()
# print(new.money)
新东方=NewEast()
print(新东方.__money)
注意点:
1、私有属性:__属性名,不能被子类所调用,在类的外面,也不能被自己的实例所调用
2、但是私有属性可以在类的内部调用
保护属性与保护方法
class NewEast(object):
def __init__(self):
self.__money = '2亿'
self._golden = '2斤'
self.name = '新东方绝技'
def _bbq(self):
print('烧烤秘方')
print('最赚钱',self.__money)
def birdsoup(self):
print('鸽子汤')
10.11.6 重写与调用父类的方法
class NewEast(object):
def cook(self):
print('鸽子汤')
class NewChickenSoup(NewEast):
def cook(self):
print('做法:田园鸡500g 大料 40g 盐10g 孜然50g')
class NewEast(object):
def cook(self):
print('鸽子汤')
def cook1(self):
print('鸽子汤')
class NewChickenSoup(NewEast):
def cook(self):
super(NewChickenSoup, self).cook()
super().cook()
NewEast.cook(self)
print('做法:田园鸡500g 大料 40g 盐10g 孜然50g')
new = NewChickenSoup()
new.cook()
内容总结
以上是互联网集市为您收集整理的python类的基础知识2全部内容,希望文章能够帮你解决python类的基础知识2所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。