Python学习作业四

面向对象学习运用

1、烤地瓜

# 1、创建地瓜类(属性包含,烤制时间、烤制状态、烤制味道)
class SweetPotato():
    def __init__(self):
        self.potato_time = 0
        self.potato_state = '生的'
        self.potato_condiments = []
    def cook(self, time):
        self.potato_time += time
        times = int(self.potato_time)
        if 0 <= times < 3:
            self.potato_state = '生的'
        elif 3 < times <= 5:
            self.potato_state = '半生不熟'
        elif 5 < times <= 7:
            self.potato_state = '熟了'
        elif times > 7:
            self.potato_state = '烤糊了'
    def add_condition(self, condiment):
        self.potato_condiments.append(condiment)
    def __str__(self):
        return f'已经烤了{self.potato_time}时间,地瓜的状态:{self.potato_state},添加的佐料有:{self.potato_condiments}'
# 2、创建对象
digua1 = SweetPotato()
print(digua1)
digua1.cook(2)
print(digua1)
digua1.cook(2)
digua1.add_condition('蜂蜜')
print(digua1)

 

2、搬家具

# 1、声明家具类&房屋类
class house():
    def __init__(self, address, area):
        self.address = address
        self.area = area
        self.remains_area = area
        self.furniture = []
    def __str__(self):
        return f"房屋地址:{self.address}、房屋占地面积:{self.area}、房屋剩余面积:{self.remains_area}、屋内家具{self.furniture}"
    def add_furniture(self, item):
        if item.area <= self.remains_area:
            self.furniture.append(item.name)
            self.remains_area -= item.area
            print('家具添加成功')
        else:
            print(f'家具\t{item.name}\t添加失败')

class furnitures():
    def __init__(self, name, area):
        self.name = name
        self.area = area
# 2、创建对象

shafa = furnitures('沙发', 20)
lanqiuchang = furnitures('篮球场', 100)
fanzi = house('郑州', 100)
print(fanzi)
fanzi.add_furniture(shafa)
fanzi.add_furniture(lanqiuchang)
print(fanzi)

 

在面向对象初步的学习中,感受到 面向对象 与 c语言结构体 的明显差异

面向对象 除了属性以外,还具有行为(函数)

结构体 VS 类

结构体是值类型               类是引用类型

结构体是栈(相对小,访问效率高)存储    类是堆(相对大,访问效率低)存储

结构体赋的是值               类赋的是对象地址

 

存在不足,请多指教

posted @ 2020-07-19 12:05  终觉浅、要躬行  阅读(246)  评论(0)    收藏  举报