首页 > 编程语言 > 详细

【菜鸟学Python】面向对象的语法及基本使用

时间:2019-07-23 10:13:07      阅读:79      评论:0      收藏:0      [点我收藏+]

面向对象简介   

  • 类(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)

 

【菜鸟学Python】面向对象的语法及基本使用

原文:https://www.cnblogs.com/liduo0413/p/11229839.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!