python面向对象(1)

class Washer():

def wash(self):

print(‘洗衣服’)

print(self)

haier = Washer()

print(haier)

haier.wash()

由于打印对象和打印self得到的内存地址相同,所以self指的是调用该函数的对象

haier1 = Washer()

print(haier1)

haier1.wash()

1. 一个类可以创建多个对象; 2. 多个对象都调用函数的时候,self地址是否相同

class Washer():

def wash(self):

print(‘洗衣服’)

print(self)

haier1 = Washer()

haier1.wash()

haier2 = Washer()

haier2.wash()

五、添加和获取对象的属性


在这里插入图片描述

在这里插入图片描述

class Washer():

def wash(self):

print(‘洗衣服’)

haier1 = Washer()

添加属性 对象名.属性名 = 值

haier1.width = 400

haier1.height = 500

获取属性 对象名.属性名

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

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

六、在方法内通过self获取对象属性


在这里插入图片描述

在这里插入图片描述

class Washer():

def wash(self):

print(‘洗衣服’)

获取实例属性

def print_info(self):

self.属性名

print(self.width)

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

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

haier1 = Washer()

添加属性

haier1.width = 400

haier1.height = 500

对象调用实例方法

haier1.print_info()

七、魔法方法: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
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Python开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

img

img

img

img

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注:Python)

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
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Python开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

[外链图片转存中…(img-S9E6m2hg-1713692859772)]

[外链图片转存中…(img-fObwJO3o-1713692859772)]

[外链图片转存中…(img-nmMMQPr8-1713692859773)]

[外链图片转存中…(img-8aaW185s-1713692859773)]

img

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注:Python)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值