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平米---家具列表为['席梦思', '衣柜', '餐桌']