当前位置: 移动技术网 > IT编程>脚本编程>Python > python基础入门之十五 —— 类与对象

python基础入门之十五 —— 类与对象

2020年03月30日  | 移动技术网IT编程  | 我要评论

黑名单19,河南淮阳新闻,领导办公桌下的母狗奴

一、定义

  • 是对一系列具有相同特征和行为的事物的统称,是一个抽象的概念,不是真实存在的事物。
  • 对象是类创建出来的真实存在的事物。
  • 开发中,先有类,再有对象。eg:学生类、学生甲对象
#定义洗衣机类
"""
class类名():
代码
"""
class washer():
def wash(self):  # self指得是调用该函数的对象。
print('能洗衣服')

#创建对象
#对象名=类名()
heier=washer()

print(heier)
heier.wash()

 

二、魔法方法

在python中,__ xx __()的函数叫做魔法方法,指的是具有特殊功能的函数。

p.s:两边都是两个下划线

1、__init__()

初始化对象

class washer():
    def __init__(self,high,width):
        self.high=high
        self.width=width
    def wath(self):

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

heier1 = washer(10,20)
heier1.wath()"""
洗衣机的宽度20,
洗衣机高度10
"""

2、__str__()

在使用print输出对象的时候,默认打印对象的内存地址。

如果类定义了__str__方法,那么就会打印从这个方法中return的数据

class washer():
    def __init__(self):
        self.high=500
    def __str__(self):
        return '解释说明,类的说明或对象状态的说明'

heier1 = washer()
print(heier1)

"""
解释说明,类的说明或对象状态的说明
"""  

3、__del__()

删除对象时调用

class washer():
    def __init__(self):
        self.high=500
    def __del__(self):
        print('对象删除')

heier1 = washer()

"""
对象删除
"""

三、案例实现

1、烤地瓜

class sweetpotato():
    def __init__(self):
        self.time = 0
        self.static = '生的'
        self.condiments = []

    def cook(self, time):
        while true:
            self.time += 1
            if self.time>time:
                break
            if 0 <= self.time < 3:
                self.static = '生的'
            elif 3 <= self.time < 5:
                self.static = '半生不熟'
            elif 5 <= self.time < 8:
                self.static = '熟了'
            elif 8 <= self.time:
                self.static = '糊了'
            print(self)

    def __str__(self):
        return f'地瓜烤了{self.time}分钟,状态为{self.static}'

    def __del__(self):
        print('删了删了')


digua1 = sweetpotato()
digua1.cook(10)

2、搬家具

class furniture():
    def __init__(self, name, area):
        self.name = name
        self.area = area

class home():
    def __init__(self, address, area):
        self.address = address
        self.area = area
        self.free_area = area
        self.furniture = []

    def __str__(self):
        return f'房子地理位置{self.address},房屋面积是{self.area},房屋剩余面积是{self.free_area},家具{self.furniture}'

    def add_furniture(self, item):
        if item.area <= self.free_area:
            self.furniture.append(item.name)
            self.free_area -= item.area
        else:
            print('家具太大')

bed = furniture('双人床',6)
safa = furniture('沙发',6)
jia=home('北京',1000)
print(jia)

jia.add_furniture(bed)
print(jia)

jia.add_furniture(safa)
print(jia)
"""
房子地理位置北京,房屋面积是1000,房屋剩余面积是1000,家具[]
房子地理位置北京,房屋面积是1000,房屋剩余面积是994,家具['双人床']
房子地理位置北京,房屋面积是1000,房屋剩余面积是988,家具['双人床', '沙发']
"""

 

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网