python面向对象

七、魔法方法:init()方法


在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

目标: 定义init魔法方法设置初始化属性 并访问调用

“”"

  1. 定义类

init魔法方法: width 和 height

添加实例方法:访问实例属性

  1. 创建对象

  2. 验证成果

调用实例方法

“”"

class Washer():

def init(self):

添加实例属性

self.width = 500

self.height = 800

def print_info(self):

print(f’洗衣机的宽度是{self.width}')

print(f’洗衣机的高度是{self.height}')

haier = Washer()

haier.print_info()

八、有参数的__init__()方法


在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

1. 定义类:带参数的init:宽度和高度; 实例方法:调用实例属性

class Washer():

def init(self, width, height):

self.width = width

self.height = height

def print_info(self):

print(f’洗衣机的宽度是{self.width}, 洗衣机的高度是{self.height}')

2. 创建对象,创建多个对象且属性值不同;调用实例方法

haier1 = Washer(10, 20)

haier1.print_info()

haier2 = Washer(100, 200)

haier2.print_info()

九、魔法方法:str()方法


在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

class Washer():

def init(self):

self.width = 300

def str(self):

return ‘解释说明:类的说明或对象状态的说明’

haier = Washer()

print(haier)

十、魔法方法:__del__()方法


在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

class Washer():

def init(self):

self.width = 300

def del(self):

print(‘对象已经删除’)

haier = Washer()

十一、继承的概念


1.现实中的继承

在这里插入图片描述

2.程序中的继承

在这里插入图片描述

继承:子类默认继承父类的所有属性和方法

1. 定义父类

class A(object):

def init(self):

self.num = 1

def info_print(self):

print(self.num)

2. 定义子类 继承父类

class B(A):

pass

3. 创建对象,验证结论

result = B()

result.info_print()

十二、单继承


在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

1. 师父类,属性和方法

class Master(object):

def init(self):

self.kongfu = ‘[古法煎饼果子配方]’

def make_cake(self):

print(f’运用{self.kongfu}制作煎饼果子’)

2. 定义徒弟类,继承师父类

class Prentice(Master):

pass

3. 用徒弟类创建对象,调用实例属性和方法

daqiu = Prentice()

print(daqiu.kongfu)

daqiu.make_cake()

十三、多继承


在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

1. 师父类,属性和方法

class Master(object):

def init(self):

self.kongfu = ‘[古法煎饼果子配方]’

def make_cake(self):

print(f’运用{self.kongfu}制作煎饼果子’)

为了验证多继承,添加School父类

class School(object):

def init(self):

self.kongfu = ‘[黑马煎饼果子配方]’

def make_cake(self):

print(f’运用{self.kongfu}制作煎饼果子’)

2. 定义徒弟类,继承师父类 和 学校类

class Prentice(School, Master):

pass

3. 用徒弟类创建对象,调用实例属性和方法

daqiu = Prentice()

print(daqiu.kongfu)

daqiu.make_cake()

结论:如果一个类继承多个父类,优先继承第一个父类的同名属性和方法

十四、子类重写父类的同名属性和方法


在这里插入图片描述

在这里插入图片描述

1. 师父类,属性和方法

class Master(object):

def init(self):

self.kongfu = ‘[古法煎饼果子配方]’

def make_cake(self):

print(f’运用{self.kongfu}制作煎饼果子’)

为了验证多继承,添加School父类

class School(object):

def init(self):

self.kongfu = ‘[黑马煎饼果子配方]’

def make_cake(self):

print(f’运用{self.kongfu}制作煎饼果子’)

2. 定义徒弟类,继承师父类 和 学校类, 添加和父类同名的属性和方法

class Prentice(School, Master):

def init(self):

self.kongfu = ‘[独创煎饼果子技术]’

def make_cake(self):

print(f’运用{self.kongfu}制作煎饼果子’)

3. 用徒弟类创建对象,调用实例属性和方法

daqiu = Prentice()

print(daqiu.kongfu)

daqiu.make_cake()

结论:如果子类和父类拥有同名属性和方法,子类创建对象调用属性和方法的时候,调用到的是子类里面的同名属性和方法

1. 师父类,属性和方法

class Master(object):

def init(self):

self.kongfu = ‘[古法煎饼果子配方]’

def make_cake(self):

print(f’运用{self.kongfu}制作煎饼果子’)

2. 定义徒弟类,继承师父类 和 学校类, 添加和父类同名的属性和方法

class Prentice(Master):

def init(self):

self.kongfu = ‘[独创煎饼果子技术]’

def make_cake(self):

print(f’运用{self.kongfu}制作煎饼果子’)

3. 用徒弟类创建对象,调用实例属性和方法

daqiu = Prentice()

print(daqiu.kongfu)

daqiu.make_cake()

print(Prentice.mro)

十五、子类调用父类同名属性和方法


在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

1. 师父类,属性和方法

class Master(object):

def init(self):

self.kongfu = ‘[古法煎饼果子配方]’

def make_cake(self):

print(f’运用{self.kongfu}制作煎饼果子’)

为了验证多继承,添加School父类

class School(object):

def init(self):

self.kongfu = ‘[黑马煎饼果子配方]’

def make_cake(self):

print(f’运用{self.kongfu}制作煎饼果子’)

2. 定义徒弟类,继承师父类 和 学校类, 添加和父类同名的属性和方法

class Prentice(School, Master):

def init(self):

self.kongfu = ‘[独创煎饼果子技术]’

def make_cake(self):

加自己的初始化的原因:如果不加这个自己的初始化,kongfu属性值是上一次调用的init内的kongfu属性值

self.init()

print(f’运用{self.kongfu}制作煎饼果子’)

子类调用父类的同名方法和属性:把父类的同名属性和方法再次封装

def make_master_cake(self):

父类类名.函数()

再次调用初始化的原因:这里想要调用父类的同名方法和属性,属性在init初始化位置,所以需要再次调用init

Master.init(self)

Master.make_cake(self)

def make_school_cake(self):

School.init(self)

School.make_cake(self)

3. 用徒弟类创建对象,调用实例属性和方法

daqiu = Prentice()

daqiu.make_cake()

daqiu.make_master_cake()

daqiu.make_school_cake()

daqiu.make_cake()

十六、多层继承


在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

1. 师父类,属性和方法

class Master(object):

def init(self):

self.kongfu = ‘[古法煎饼果子配方]’

def make_cake(self):

print(f’运用{self.kongfu}制作煎饼果子’)

为了验证多继承,添加School父类

class School(object):

def init(self):

self.kongfu = ‘[黑马煎饼果子配方]’

def make_cake(self):

print(f’运用{self.kongfu}制作煎饼果子’)

2. 定义徒弟类,继承师父类 和 学校类, 添加和父类同名的属性和方法

class Prentice(School, Master):

def init(self):

self.kongfu = ‘[独创煎饼果子技术]’

def make_cake(self):

self.init()

print(f’运用{self.kongfu}制作煎饼果子’)

子类调用父类的同名方法和属性:把父类的同名属性和方法再次封装

def make_master_cake(self):

Master.init(self)

Master.make_cake(self)

def make_school_cake(self):

School.init(self)

School.make_cake(self)

步骤:1. 创建类Tusun, 用这个类创建对象;2. 用这个对象调用父类的属性或方法看能否成功

class Tusun(Prentice):

pass

xiaoqiu = Tusun()

xiaoqiu.make_cake()

xiaoqiu.make_master_cake()

xiaoqiu.make_school_cake()

十七、通过super()来调用父类中方法


在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

class Master(object):

def init(self):

self.kongfu = ‘[古法煎饼果子配方]’

def make_cake(self):

print(f’运用{self.kongfu}制作煎饼果子’)

class School(Master):

def init(self):

self.kongfu = ‘[黑马煎饼果子配方]’

def make_cake(self):

print(f’运用{self.kongfu}制作煎饼果子’)

2.1 super()带参数写法

super(School, self).init()

super(School, self).make_cake()

2.2 无参数的super

super().init()

super().make_cake()

class Prentice(School):

def init(self):

self.kongfu = ‘[独创煎饼果子技术]’

def make_cake(self):

self.init()

print(f’运用{self.kongfu}制作煎饼果子’)

子类调用父类的同名方法和属性:把父类的同名属性和方法再次封装

def make_master_cake(self):

Master.init(self)

Master.make_cake(self)

def make_school_cake(self):

School.init(self)

School.make_cake(self)

需求:一次性调用父类School Master的方法

def make_old_cake(self):

方法一:如果定义的类名修改,这里也要修改,麻烦; 代码量庞大,冗余

School.init(self)

School.make_cake(self)

Master.init(self)

Master.make_cake(self)

方法二:super()

2.1 super(当前类名, self).函数()

super(Prentice, self).init()

super(Prentice, self).make_cake()

2.2 无参数super

super().init()

super().make_cake()

daqiu = Prentice()

daqiu.make_old_cake()

十八、私有属性和私有方法


在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

class Master(object):

def init(self):

self.kongfu = ‘[古法煎饼果子配方]’

def make_cake(self):

print(f’运用{self.kongfu}制作煎饼果子’)

class School(object):

def init(self):

self.kongfu = ‘[黑马煎饼果子配方]’

def make_cake(self):

print(f’运用{self.kongfu}制作煎饼果子’)

class Prentice(School, Master):

def init(self):

self.kongfu = ‘[独创煎饼果子技术]’

self.money = 2000000

定义私有属性

self.__money = 2000000

定义私有方法

def __info_print(self):

print(‘这是私有方法’)

def make_cake(self):

self.init()

print(f’运用{self.kongfu}制作煎饼果子’)

def make_master_cake(self):

Master.init(self)

Master.make_cake(self)

def make_school_cake(self):

School.init(self)

School.make_cake(self)

class Tusun(Prentice):

pass

xiaoqiu = Tusun()

print(xiaoqiu.money)

print(xiaoqiu.__money)

xiaoqiu.__info_print()

十九、修改私有属性的值


在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

class Master(object):

def init(self):

self.kongfu = ‘[古法煎饼果子配方]’

def make_cake(self):

print(f’运用{self.kongfu}制作煎饼果子’)

class School(object):

def init(self):

self.kongfu = ‘[黑马煎饼果子配方]’

def make_cake(self):

print(f’运用{self.kongfu}制作煎饼果子’)

class Prentice(School, Master):

def init(self):

self.kongfu = ‘[独创煎饼果子技术]’

定义私有属性

self.__money = 2000000

文末有福利领取哦~

👉一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。img

👉二、Python必备开发工具

img
👉三、Python视频合集

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
img

👉 四、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。(文末领读者福利)
img

👉五、Python练习题

检查学习结果。
img

👉六、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
img

img

👉因篇幅有限,仅展示部分资料,这份完整版的Python全套学习资料已经上传

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里无偿获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 19
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python面向对象编程是一种编程范式,它将程序组织成对象的集合,每个对象都有自己的属性和方法。在Python中,可以通过定义类来创建对象,并通过实例化类来创建具体的对象。引用[1]中的代码示例展示了一个Animal类,其中包含了初始化方法和一个__str__方法来返回对象的描述信息。通过这个类,可以创建Animal对象,并通过print函数输出对象。引用中的代码示例展示了如何使用@property装饰器来定义类的属性和属性的访问方法。通过这种方式,可以在访问属性时像访问普通属性一样使用点号,而不需要使用方法调用的方式。引用中的代码示例展示了多态在Python中的应用。多态是面向对象编程的重要概念,它允许不同的对象以相同的方式对外部访问,但具体的实现可能不同。在这个示例中,father、son和daughter类都继承了father类,并重写了tell方法。通过调用不同的对象的tell方法,可以看到不同的输出结果。总之,Python面向对象编程是一种灵活且强大的编程方式,它允许开发者以对象为中心来思考和组织代码,提高了代码的可读性和可维护性。通过定义类、创建对象和使用类的属性和方法,可以实现丰富多样的功能。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Python面向对象(全套)](https://blog.csdn.net/Thewei666/article/details/126652501)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值