python——面向对象

面向对象、类(类名、属性、方法)、创建对象、调用方法、

定义一个类(class):                       

  1、类名   大驼峰命名规则---首字母大写

  2、属性   类包含的属性

  3、方法   类的方法

eg:  class Cat :   # 定义一个Cat类

    def eat (self): # class类中创建一个eat的方法

      pass

    def __init__(self,name,age):   # 创建一个默认方法__init__      类的属性可以供所有对象使用

      self.name = name    # 属性name的值是name

      self.age = age   # 属性age的值是age

  c = Cat ()   # 创建对象c

  d = Cat('张三',18)    # 创建对象d,并传入参数name和age,默认调用类中__init__方法

  d.name  # 可以使用类的name属性   张三

  d.age  # 可以使用类的age属性  18

  c.eat()   # 调用Cat类中的eat方法  

 # c.address = '中国'   #  为c动态绑定一个address属性     对象c独有的属性

 

    

案例:

class HouseItem:  # 定义一个家具类
# 家具属性
def __init__(self, name, area):
self.name = name
self.area = area

def __str__(self): # 此方法适用print()打印
        return f'家具名字{self.name} , 占地面积为{self.area}平米'


# 创建家具对象
bed = HouseItem('席梦思', 4)
chest = HouseItem('衣柜', 2)
table = HouseItem('餐桌', 1.5)


class House: # 定义一个房子类
# 房子的属性
def __init__(self, name, total_area, free_area):
self.name = name # 户型
self.total_area = total_area # 总面积
self.free_area = free_area # 剩余面积
self.item_list = [] # 家具列表,开始为空

def __str__(self):
return f'户型是{self.name}---总面积是{self.total_area}平米---' \
f'剩余面积是{self.free_area}平米---家具列表为{self.item_list}'

# 房子添加家具的方法
def add_item(self, item): # item 家具对象参数
# 判断房子的剩余面积与家具的占地面积关系
if self.free_area > item.area:
# 向家具列表中添加家具 ---向列表中添加数据 append()
self.item_list.append(item.name)
# 修改剩余面积
self.free_area -= item.area # 当前剩余面积-添加家具的占地面积
else:
print('剩余面积不足')


# 创建房子对象
house = House('两室一厅', 100, 100)
# # 添加床
house.add_item(bed) # 这里的bed 对应 add_item()中的item参数
# 添加衣柜
house.add_item(chest)
# 添加餐桌
house.add_item(table)
print(house)

户型是两室一厅---总面积是100平米---剩余面积是92.5平米---家具列表为['席梦思', '衣柜', '餐桌']
posted @ 2022-06-01 17:53  非同凡响  阅读(28)  评论(0编辑  收藏  举报