Python从入门到精通[面向对象]

Python第十章

Python面向对象编程



前言

面向对象和面向过程的区别

面向过程:(把大象装到冰箱里)
1.开冰箱
2.放大象
3.关冰箱

面向对象:(把大象装到冰箱里)
    类
    将一系列事物封装到类中,包括功能以及属性
    class Person():
     def fangdaxiang():
            将大象放到冰箱的方法

为什么使用面向对象?

面向对象他更加符合人的思想。
特点:
封装
继承
多态


一、类和对象

类:将一系列事物封装到类中,包括功能以及属性,是虚拟的,不是真实存在
    对象:是对类的一种具体化,是真实存在的。
    声明类:
    python2.0需要在小括号加上Object。
    python3.0不需要
    class 类名():
        属性: #类属性:一般固定值,不在修改的值,我们使用类属性
        方法:

1.定义对象以及使用对象中的方法

class Student():
	 def __init__(self,sname,sex):#初始化方法,初始化
        self.sname=sname
        self.sex=sex
      def __del__(self):
        print('当对象的线程结束以后,内存会自动调用del方法,销毁内存中的对象')

    def __str__(self):
        print('这是输出对象信息')
        return '名称:{},性别:{}'.format(self.sname,self.sex)
 
    def chi(self):
        print('这是吃的方法。。。。')

在Python中, xx() 的函数叫做魔法方法,指的是具有特殊功能的函数。
注意:

init() 方法,在创建⼀个对象时默认被调用,不需要手动调用
init(self) 中的self参数,不需要开发者传递,python解释器会自动把当前的对象引 用传递过去。

str()

当使用print输出对象的时候,默认打印对象的内存地址。如果类定义了 str 方法,那么就会打印从在这个方法中 return
的数据。

二、调用,创建实体对象

class Student():
	 def __init__(self,sname,sex)
        self.sname=sname
        self.sex=sex
     def __str__(self):
        print('这是输出对象信息')
        return '名称:{},性别:{}'.format(self.sname,self.sex)
	def StuRun(self):
        print('这是运动的方法.')
Stu1=Student('张三',18)
Stu1.StuRun()
print(Stu1.__str__())

三. 使用面向对象做个小系统

1:需求

烤地瓜
需求
需求主线:
1. 被烤的时间和对应的地瓜状态:
0-3分钟:生的
3-5分钟:半生不熟
5-8分钟:熟的
超过8分钟:烤糊了


2. 添加的调料:
用户可以按自己的意愿添加调料

需求涉及⼀个事物: 地瓜,故案例涉及⼀个类:地瓜类。
定义类
地瓜的属性
被烤的时间
地瓜的状态
添加的调料
地瓜的方法
被烤
用户根据意愿设定每次烤地瓜的时间
判断地瓜被烤的总时间是在哪个区间,修改地瓜状态
添加调料
用户根据意愿设定添加的调料
将用户添加的调料存储
显示对象信息

创建对象,调用相关实例方法

2.实现代码展示

class  Potato():
    def __init__(self):
        self.time=0
        self.static='生的'
        self.listFlavour=[]
    def __str__(self):
        return f'这是地瓜,考了{self.time}时间,状态是{self.static},使用的调料有{self.listFlavour}'
    def kao(self,time):
        self.time+=time
        if self.time>=0 and self.time<3:
            self.static='生的'
        elif self.time>=3 and self.time<5:
            self.static='半生不熟'
        elif self.time>=5 and self.time<=8:
            self.static='熟了'
        elif self.time>8:
            self.static='糊了'

    def addFlavour(self,*flavour):
        for i in flavour:
            if i not in self.listFlavour:
                self.listFlavour.append(i)

pt=Potato()
pt.kao(2)
pt.addFlavour('辣椒')
print(pt)
pt.kao(6)
pt.addFlavour('孜然','辣椒','胡椒粉')
print(pt)

四.小结

本章概述了Python中对象的创建于调用,并使用面向对象做了一个小系统,本章知识尤为重要,在之后的Python学习中大概率会一直使用面向对象的语法,本章不明白的小伙伴一定要多练.
有哪里不足或者更好的建议,欢迎留言吐槽,有哪里不懂的小伙伴可以私信博主,博主将一一答复,感谢认可,感谢支持!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

道而起

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值