python面向对象封装

# 面向对象封装案例:为新房子增添家具# 分析对象的属性# 房子属性:户型、面积
# 家具属性: 家具名称、占地面积

class Furniture:

    def __init__(self, name, area):
        self.name = name
        self.area = area

    def __str__(self):
        return F"[{self.name}]占地面积{self.area}平方米"

class House:

    def __init__(self, house_type, area):
        self.house_type = house_type
        self.area = area
        self.free_area = area
        self.furnitures = []

    def __str__(self):
        return F"房子户型:{self.house_type}\n占地面积:{self.area}平方米\n家具包含:{self.furnitures}\n剩余面积:{self.free_area}"

    def add(self, furniture):

        if self.free_area < furniture.area:
            return
        self.furnitures.append(furniture.name)
        self.free_area -= furniture.area

# 创建房子对象
my_house = House("一室一厅", 60)
# 创建家具对象
bed = Furniture("席梦思", 11)
chair = Furniture("实木椅", 0.5)
# 为房子添加家具
my_house.add(bed)
my_house.add(chair)
print(my_house)

输出:

房子户型:一室一厅
占地面积:60平方米
家具包含:[‘席梦思‘, ‘实木椅‘]
剩余面积:48.5

原文地址:https://www.cnblogs.com/testlearn/p/11718849.html

时间: 2024-08-04 23:22:37

python面向对象封装的相关文章

[Python]面向对象封装案例

面向对象封装案例 封装 封装是面向对象编程的一大特点 面向对象编程的第一步 -- 将属性和方法 封装到一个抽象的类中 => 一开始就应该先做需求分析,分析这个类有哪些属性和方法 外界使用类创建对象,然后让对象调用方法 对象方法的细节都被封装在类的内部 => 封装就是把方法,属性都封装在类中,需要的时候使用类的对象直接进行调用即可 小明爱跑步 需求 小明 体重75.0公斤 小明每次跑步会减肥0.5公斤 小明每次吃东西体重会增加1公斤 class Person: # Python的属性是在__in

Python面向对象封装案例

01. 封装 封装 是面向对象编程的一大特点 面向对象编程的 第一步 —— 将 属性 和 方法 封装 到一个抽象的 类 中 外界 使用 类 创建 对象,然后 让对象调用方法 对象方法的细节 都被 封装 在 类的内部 02. 小明爱跑步 需求 小明 体重 75.0 公斤 小明每次 跑步 会减肥 0.5 公斤 小明每次 吃东西 体重增加 1 公斤 注意: 在 对象的方法内部,是可以 直接访问对象的属性 的! class Person: def __init__(self,name,weight):

python面向对象--封装,继承,多态

1.创建类 class ClassName: ''' 定义类 ''' def __init__(self,name,age):#self代表类的实例,而不是类本身 ''' 类初始化函数 :param name:姓名 :param age: 年龄 ''' self.name=name self.age=age def Class_method(self): ''' 类中的方法 :return: ''' pass 2.类实例化,创建类的对象 c_name1=ClassName('zhangsan',

Python面向对象编程-封装

1引言 你点击了桌面上的Chrome图标,一个浏览器窗口出现了,输入网址就可以在Internet世界愉快玩耍.这一切是怎么实现的呢?Chromium这个多进程的程序是如何启动各个进程的呢?浏览器主进程(界面进程)启动了哪些线程?如何启动的呢?这些问题一直萦绕在心头,一起来看看源代码吧.本文主要针对Chromium for Mac的源代码,其它操作系统大同小异. 2背景知识 浏览器作为一个应用程序,是以进程的形式运行在操作系统上的.首先,Chromium是一个多进程的应用程序,我们需要了解Chro

Python面向对象之类的封装、继承与多态

Python面向对象中类的三大特性,即封装.继承与多态,同时也是所有语言在面向对象编程中的重要特性,下面用实际的代码部分针对每一种特性做出说明. 一.封装 顾名思义,封装即把我们想要的内容封装到某个地方,因此在这里记录两个问题,一是如何封装.二是如何调用封装的内容. 1.封装数据 class Company:     def __init__(self, dept, leader):         self.dept = dept         self.leader = leader   

Python 面向对象 组合-多态与多态性-封装-property

面向对象-组合 1.什么是组合 组合指的是某一个对象拥有一个属性,该属性的值是另外一个类的对象 1 class Foo: 2 xxx = 111 3 4 class Bar: 5 yyy = 222 6 7 obj = Foo() 8 obj.attr = Bar() 9 10 print(obj.xxx) 11 >>>111 12 print(obj.attr.yyy) 13 >>>222 2.为何要用组合 通过为某一个对象添加属性(属性的值是另外一个类的对象)的方式

Python面向对象之:三大特性:继承,封装,多态。

前言: python面向对象的三大特性:继承,封装,多态. 1. 封装: 把很多数据封装到?个对象中. 把固定功能的代码封装到?个代码块, 函数, 对象, 打包成模块. 这都属于封装的思想. 具体的情况具体分析. 比如. 你写了?个很?B的函数. 那这个也可以被称为封装. 在?向对象思想中. 是把?些看似?关紧要的内容组合到?起统?进?存储和使?. 这就是封装. 2. 继承: ?类可以?动拥有?类中除了私有属性外的其他所有内容. 说?了, ??可以随便?爹的东?. 但是朋友们, ?定要认清楚?个

19.Python面向对象之:三大特性:继承,封装,多态。

前言: python面向对象的三大特性:继承,封装,多态. 1. 封装: 把很多数据封装到?个对象中. 把固定功能的代码封装到?个代码块, 函数, 对象, 打包成模块. 这都属于封装的思想. 具体的情况具体分析. 比如. 你写了?个很?B的函数. 那这个也可以被称为封装. 在?向对象思想中. 是把?些看似?关紧要 的内容组合到?起统?进?存储和使?. 这就是封装. 2. 继承: ?类可以?动拥有?类中除了私有属性外的其他所有内容. 说?了, ??可以随便?爹的东?. 但是朋友们, ?定要认 清楚

python学习 面向对象封装

from collectoins import namedtuplePoint=namedtuple('point',['x','y'])t1=Point(1,2)print(t1.x)print(t1.y)没有方法的类属性不会发生变化    定义简单 不能改变面向对象封装私有属性!!!私有方法!!!用装饰器描述的几个方法@property !!!@classmethod!!@staticmethod! 封装:class Teacher:     def __init__(self,name,p