【菜鸟学Python】面向对象的语法及基本使用
面向对象简介
- 类(Class): 用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。
- 类变量:类变量在整个实例化的对象中是公用的。类变量定义在类中且在函数体之外。类变量通常不作为实例变量使用。
- 数据成员:类变量或者实例变量, 用于处理类及其实例对象的相关的数据。
- 方法重写:如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程叫方法的覆盖(override),也称为方法的重写。
- 实例变量:定义在方法中的变量,只作用于当前实例的类。
- 继承:即一个派生类(derived class)继承基类(base class)的字段和方法。继承也允许把一个派生类的对象作为一个基类对象对待。例如,有这样一个设计:一个Dog类型的对象派生自Animal类,这是模拟"是一个(is-a)"关系(例图,Dog是一个Animal)。
- 实例化:创建一个类的实例,类的具体对象。
- 方法:类中定义的函数。
- 对象:通过类定义的数据结构实例。对象包括两个数据成员(类变量和实例变量)和方法。
创建类
使用 class 语句来创建一个新类,class 之后为类的名称并以冒号结尾:
class ClassName: '类的帮助信息' #类文档字符串 class_suite #类体
实例
摆放家具
需求
房子(House)有户型、总面积和家具名称列表
新房子没有任何的家具
家具(HouseItem)有名字和占地面积,其中
席梦思(bed) 占地 4 平米
衣柜(chest) 占地 2 平米
餐桌(table) 占地 2.5 平米
将以上三件 家具添加 到 房子 中
打印房子时,要求输出:户型、总面积、剩余面积、家具名称列表
剩余面积
在创建房子对象时,定义一个 剩余面积的属性,初始值和总面积相等
当调用 add_item 方法,向房间 添加家具 时,让 剩余面积 -= 家具面积
class HouseItem: """创建家具类""" def __init__(self, name, area): """ :param name: 家具名称 :param area: 占地面积 """ self.name = name self.area = area def __str__(self): return "[%s] 占地面积 %.2f" % (self.name, self.area) bed = HouseItem("席梦思", 4) chest = HouseItem("衣柜", 4) table = HouseItem("桌子", 2) print(bed) print(chest) print(table) class House: """创建房子类""" def __init__(self, house_type, area): self.house_type = house_type self.area = area # 默认剩余面积等于房子面积 self.free_area = area # 默认列表里面什么都没有 self.item_list = [] def __str__(self): return "户型:%s\n总面积:%.2f\n[剩余:%.2f]\n家具:%s" \ % (self.house_type, self.area, self.free_area, self.item_list) def add_item(self, item): print("要添加 %s" % item) if item.area > self.free_area: print("%s 的面积太大,不能添加到房子中" % item.name) return self.item_list.append(item.name) self.free_area -= item.area my_house = House("两室一厅", 80) my_house.add_item(bed) my_house.add_item(chest) my_house.add_item(table) print(my_house)

浙公网安备 33010602011771号