python中的面向对象

# 面向对象是非常重要的!
# 抽象,是个思想,结构

# 小明 小红 小雨  都是人
# 海尔洗衣机 海东洗衣机 海西洗衣机 都是洗衣机
# 猫 狗 熊猫  都是动物

# 蓝图
#
# class WashingMachine:  # 类名一般是大驼峰
#     pass

# # 特征是属性
# age = 20
# # 行为是方法
# def

# 先有类,后有对象

# 做一张蓝图,生成洗衣机
class WashingMachine:  # 洗衣机
    width = 595
    height = 850

    # 功能:会洗衣服
    def canDoLaundry(self):
        print('会洗衣服')


# 生成对象
haier = WashingMachine()

# 获取属性
print(haier.height)
print(haier.width)
haier.canDoLaundry()

# 添加属性
haier.color = 'red'
print(haier.color)

# 修改属性
haier.height = 800
print(haier.height)

运行后得:

python中的面向对象

 

 

# 如果说 class 是 英雄
# 那么可以说 魔法方法 是英雄的 被动技能 自动生效 基于一定的条件来触发
# 重构->重命名 修改某一范围的所有特定变量名称,一般选择当前文件
# 魔法方法 __xxx__()
print('魔法方法')


# # add str init del
class WashingMachine:  # 洗衣机类
    def __init__(self, width, height):  # 初始化属性
        self.width = width
        self.height = height

    def __add__(self, other):  # 当执行加法时自动触发
        self.width += other
        self.height += other
        return self  # 感觉是迭代,返回 对象 ,就可以加多个数

    def __str__(self):  # 当使用print时触发
        """海尔说明书"""
        return f'高度为:{self.height}n宽度为:{self.width}'

    def __del__(self):  # 当删除时触发
        print('del魔法方法被触发了')


haier = WashingMachine(850, 595)  # 触发__init__
haier + 2 + 3  # 触发__add__
print(haier)  # 触发__str__
del haier  # 触发__del__

python中的面向对象

 

 

 

# 私有属性 在属性名称的前面加一个下划线
# # 烤地瓜 红薯
class SweetPotato:
    def __init__(self):
        """初始化"""
        self._times = 0
        self._status = '生的'
        self._seasoning = []  # 加的调料

    def roasted_Sweet(self, times):  # 烤地瓜
        """烤地瓜"""
        # 0-2分钟是生的  2-5是半生  5-8刚刚好  8分钟以上烤焦了
        self._times += times  # 可能烤了之后再次烤
        if 0<= self._times <= 2:
            self._status = '生的'
        elif 3 <= self._times <= 5:
            self._status = '半生'
        elif 6 <= self._times <= 8:
            self._status = '刚刚好'
        elif self._times >= 9:
            self._status = '烤焦了'

    def add_seasoning(self, *season):  # 增加调料 这有个不定长传参
        """增加调料"""
        for i in season:
            self._seasoning.append(i)

    def __str__(self):  # 查看红薯的状态
        return f'红薯烤的时间:{self._times}分钟n' 
               f'红薯的状态是:{self._status}n' 
               f'红薯目前的调料是:{" ".join(self._seasoning)}'


sweet1 = SweetPotato()
sweet1.add_seasoning('番茄酱', '孜然')
sweet1.roasted_Sweet(3)
sweet1.roasted_Sweet(3)
sweet1.add_seasoning('番茄酱', '孜然')
print(sweet1)

python中的面向对象

 

 

# 今日练习
'''
1)定义名为MyTime(我的时间)的类
2)其中应有三个实例变量 时hour 分minute 秒second
3)对时分秒进行初始化,写入__init__()中
4)定义方法get和set方法,
  get方法获取时间,set可以设置时间
5)调用set设置时间
  调用get输出时间
'''
print()
print('今日练习')


class MyTime:
    def __init__(self):
        """初始化"""
        self.hour = 1
        self.minute = 53
        self.second = 22

    def set(self, h, m, s):
        """设置时间"""
        self.hour = h  # 因为是设置时间嘛
        self.minute = m  # 所以选择使用 赋值
        self.second = s

    def get(self):
        """输出时间"""
        print(f'时间是{self.hour}小时{self.minute}分钟{self.second}秒')


data = MyTime()
data.set(20, 35, 44)
data.get()

python中的面向对象

 

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python中的面向对象 - Python技术站

(0)
上一篇 2023年4月2日
下一篇 2023年4月2日

相关文章

  • python中的字典和集合

    # 1.字典 存储数据 存储一个数据的属性 可以快速进行查找 # dict_data = {key:value,key:value,…} # key是键 # value是值 # 以大括号表示 # 数据是以键值对出现的 键值对中间用冒号连接 # key的值必须是不可变类型 # 字典和列表和集合是可变类型 print(‘1.字典’) dict_data = …

    2023年4月2日
    00
  • python中的公共操作与列表推导式

    1.公共操作 # + 合并 将两个相同类型序列进行连接 字符串、 列表、元组 l1 = [1, 2, 3] l2 = [4, 5, 6] print(l1+l2) # [1, 2, 3, 4, 5, 6]     # * 复制 将里面的数据进行复制 字符串、列表、元组 l1 = [1, 2, 3] print(l1 * 3) # [1, 2, 3, 1, 2…

    2023年4月2日
    00
  • python中的文件操作

    起初data.txt文件是这样的 # 一直打开文件但却不关闭文件会导致内存溢出 # 在python,使用open函数, # 可以打开一个已经存在的文件,或者创建一个新文件, # 语法如下: open(name, mode) # name: 是要打开的目标文件名的字符串(可以包含文件所在的具体路径)。 # mode: 设置打开文件的模式(访问模式):只读、写入…

    2023年4月2日
    00
  • python中的高阶函数

    1.匿名函数 # 1.匿名函数lambda # 简化代码 减少占用的内存 print(‘1.匿名函数lambda’) def func(): print(10) func() func = lambda: print(10) # 出现警告的原因是: # 因为你把lambda表达式赋给了另一个变量。 # 但lambda表达式本就是一个匿名的函数, # PEP8…

    2023年4月2日
    00
  • python实现学员管理系统

    “”” 1.学员管理系统 系统功能界面 1-添加学员 2-删除学员 3-修改学员信息 4-查询学员信息 5-退出系统 6-显示全部学员信息 “”” # 打印要操作的信息 # 使用数字表示使用的功能 # 输入对应的数字,表示要操作的功能 # 1:增加学员信息 2:删除学员信息 # 3:修改学员信息 4:查看学员信息 5:退出系统 # 存储数据 # str nu…

    2023年4月2日
    00
  • python中的字符串操作

    # 1.索引(下标) print(‘1.索引’) str_data = ‘Python’ # [索引(下标)]取索引的格式 # 正负索引 # 获取单个数据 sub_str = str_data[4] print(sub_str) sub_str = str_data[-2] print(sub_str)     # 2.字符串切片 # 取单个数据用索引 # …

    2023年4月2日
    00
  • python中的列表和元组

    # 1.列表的格式 # [数据1,数据2,数据3,···] # 列表 可变数据类型 # 列表可以存储多个数据,数据之间的逗号以英文逗号分隔 # 列表可以存储不同类型数据,但一般存储同一数据类型,这样便于操作 # list_name = [] # 定义了一个空的列表 # 定义了一个有数据的列表 # 可以去索引和切片 print(‘1.列表的格式’) list_…

    2023年4月2日
    00
  • python中的字典和集合

    1.字典 # 基础数据类型 # bool int float str list tuple dict set # list dict set 可变数据类型 # bool int float str tuple 不可变数据类型 # 1.字典 dict # dict_data={key: value, key1: value1} # 1,符号以大括号表示 # 2…

    2023年4月2日
    00
合作推广
合作推广
分享本页
返回顶部