精华内容
下载资源
问答
  • Python面向对象实现案例———摆放家具
    2019-04-21 18:26:47
    #房子要使用到家具,被使用的类通常先开发
    class HouseItem:
        def __init__(self,name,area):
            self.name=name
            self.area=area
        def __str__(self):
            return "[%s] 占地 %.2f" % (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.item_list=[]
    
        def __str__(self):
            #Python 能够自动的将一对括号内部的代码连接在一起
            return ("户型:%s\n总面积:%.2f[剩余:%.2f]\n家具:%s"
                    % (self.house_type,self.area,
                       self.free_area,self.item_list))
    
        def add_item(self,item):
            print("要添加%s" % item)
            #1.判断家具的面积
            if item.area > self.free_area:
                print("%s的面积太大了,无法添加" % item.name)
                return #只要return执行,下发代码就不会继续执行
            #2.将家具的名称添加到列表中
            self.item_list.append(item.name)
            #3.计算剩余面积
            self.free_area-=item.area
    
    #1.创建家具
    
    bed=HouseItem('席梦思',50)
    chest = HouseItem('衣柜',60)
    table = HouseItem('餐桌',20)
    
    # print(bed)
    # print(chest)
    # print(table)
    
    #2.创建房子对象
    my_home = House("两室一厅",100)
    my_home.add_item(bed)
    my_home.add_item(chest)
    my_home.add_item(table)
    print(my_home)
    
    #主程序只负责创建房子对象和家具对象
    #让房子对象调用add_item方法将家具添加到房子中
    #面积计算、剩余面积、家具列表等处理都被封装到房子类的内部

     

    更多相关内容
  • 游戏中经常会需要类似的素材作为符文图案或者是特效的纹理,总体的思路就是先设计一个图形对象,然后制作一个路径,再将图形对象沿路径摆放。 下面我们看一下在inkscape中如何实现这个效果: 1. 图形对象 本例中的...

    效果图

    效果图

    游戏中经常会需要类似的素材作为符文图案或者是特效的纹理,总体的思路就是先设计一个图形对象,然后制作一个路径,再将图形对象沿路径摆放。

    下面我们看一下在inkscape中如何实现这个效果:

    1. 图形对象

    本例中的图形对象很简单,如果图形是多个对象组成的要将它们群组起来(快捷键:Ctrl + G)

    图形对象

    2. 绘制路径

    路径可以通过绘制对象然后用其轮廓线转化为路径,也可以直接用贝塞尔工具等绘制

    路径

    3. 选择图形对象并将其摆放在层的最顶部(快捷键:HOME),然后选择图形对象和路径

    选择图形对象和路径

    4. 将图形对象散布在路径上

    命令:扩展->从路径生成->散布
    将图形对象散布在路径上

    可以实时预览,确认无误后点击确认即可。

    5. 删除路径

    最终结果

    展开全文
  • ") return # 将家具的名称添加到列表中 self.item_list.append(item.name) # 计算剩余面积 self.free_area -= item.area # 创建家具对象 bed = HouseItem("床", 4) chest = HouseItem("衣柜", 2) table = HouseItem...

    程序功能:
    1)房子(House)有户型、总面积 和 家具名称列表

    • 新房子无家具

    2)家具(Houseltem) 有 名字 和 占地面积,其中

    • 床(bed)占地 4 平方米

    • 衣柜(chest)占地 2 平方米

    • 餐桌(table)占地 1.5 平方米

    3)将以上三件家具添加到房子中

    4)打印房子时,要求输出:户型、总面积、剩余面积、家具名称列表

    # 家具(HouseItem)类
    class HouseItem:
        def __init__(self, name, area):
            # 家具名
            self.name = name
            # 家具占地面积
            self.area = area
    
        def __str__(self):
            return f"家具{self.name},占地{self.area}平方米。"
    
    
    # 房子(House)类
    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 f"房子户型为{self.house_type}\n" \
                   f"总面积{self.area}平方米【剩余面积{self.free_area}平方米】\n" \
                   f"家具有:{self.item_list}"
    
        # 添加家具
        def add_item(self, item):
            print(f"添加{item}")
            # 判断家具面积
            if item.area > self.free_area:
                print(f"{item.name}的面积太大,无法添加。")
                return
    
            # 将家具的名称添加到列表中
            self.item_list.append(item.name)
    
            # 计算剩余面积
            self.free_area -= item.area
    
    
    # 创建家具对象
    bed = HouseItem("床", 4)
    chest = HouseItem("衣柜", 2)
    table = HouseItem("桌子", 1.5)
    
    # 创建房子对象
    home = House("三室两厅", 120)
    home.add_item(bed)
    home.add_item(chest)
    home.add_item(table)
    print("-" * 25)
    print(home)
    

    展开全文
  • # 创建主窗口对象 root = tkinter.Tk() # 设置窗口大小(最小值:像素) root.minsize(300,300) # 创建一个按钮组件 btn = tkinter.Button(root,text = '屠龙宝刀,点击送') btn.pack() # 加入消息循环 root.mainloop...
  • 面向对象基础练习——摆放家具 需求 房子(House) 有 户型、总面积 和 家具名称列表 新房子没有任何的家具 家具(HouseItem)有 名字 和 占地面积,其中 席梦思(bed) 占地 4 平米 衣柜(chest) 占地 2...

    面向对象封装案例I——摆放家具

    需求

    1. 房子(House)户型总面积家具名称列表
    • 新房子没有任何的家具
    1. 家具(HouseItem)有 名字占地面积,其中
    • 席梦思(bed) 占地 4 平米
    • 衣柜(chest) 占地 2 平米
    • 餐桌(table) 占地 1.5 平米
    1. 将以上三件 家具 添加房子
    2. 打印房子时,要求输出:户型总面积剩余面积家具名称列表

    在这里插入图片描述
    这里有两个类,一个家具(HouseItem),一个房子(House);
    家具类中有两个属性:name和area;
    房子类中有四个属性:户型,总面积,剩余面积以及家具名称列表,同时房子类中有一个添加家具(add_item)的方法。

    剩余面积

    1. 在创建房子对象时,定义一个 剩余面积的属性初始值和总面积相等
    2. 当调用 add_item 方法,向房间 添加家具 时,让 剩余面积 -= 家具面积

    思考:应该先开发哪一个类?

    答案 —— 家具类

    1. 家具简单
    2. 房子要使用到家具,被使用的类,通常应该先开发

    代码演示:1、先写家具类

    class HouseItem:
    
        def __init__(self, name, area):
          # self.属性 = 形参;上面的name和area为形参
    		self.name = name
            self.area = area
    
        def __str__(self):
            return "[%s] 占地 %.2f" % (self.name, self.area)
    
    # 1. 创建家具
    bed = HouseItem("席梦思", 4)
    chest = HouseItem("衣柜", 2)
    table = HouseItem("餐桌", 1.5)
    
    print(bed)
    print(chest)
    print(table)
    

    代码演示:2、写完家具类后再写房子类

    class HouseItem:
    
        def __init__(self, name, area):
    		
    	   #self.属性 = 形参;上面的name和area为形参
            self.name = name
            self.area = area
    
        def __str__(self):
            return "[%s] 占地 %.2f" % (self.name, self.area)
    
    class House:
    
        def __init__(self, house_type, area):
            self.house_type = house_type
            self.area = area
    
            # 剩余面积,刚开始的时候房子是没有家具的占地面积的,所以free_area即area
            self.free_area = area
     
            # 家具名称是一个空列表
            self.item_list = []
    
        def __str__(self):
            # Python中的一个小技巧:能够自动的将一对括号内部的代码连接在一起
            return ("户型:%s\n总面积:%.2f[剩余:%.2f]\n家具:%s"
                    % (self.house_type, self.area,
                       self.free_area, self.item_list))
    
        def add_item(self, item):
            print("要添加 %s" % item)
    
    
    # 1. 创建家具
    bed = HouseItem("席梦思", 4)
    chest = HouseItem("衣柜", 2)
    table = HouseItem("餐桌", 1.5)
    
    print(bed)
    print(chest)
    print(table)
    
    # 2. 创建房子对象
    my_home = House("两室一厅", 60)
    
    my_home.add_item(bed)
    my_home.add_item(chest)
    my_home.add_item(table)
    
    print(my_home)
    

    小结

    1. 创建了一个 房子类,使用到 __init____str__ 两个内置方法
    2. 准备了一个 add_item 方法 准备添加家具
    3. 使用 房子类 创建了 一个房子对象
    4. 房子对象 调用了三次 add_item 方法,将 三件家具 以实参传递到 add_item 内部

    代码演示:3、最后完成添加家具

    需求

    • 1> 判断 家具的面积 是否 超过剩余面积如果超过,提示不能添加这件家具
    • 2> 将 家具的名称 追加到 家具名称列表
    • 3> 用 房子的剩余面积 - 家具面积
    class HouseItem:
    
        def __init__(self, name, area):
            self.name = name
            self.area = area
    
        def __str__(self):
            return "[%s] 占地 %.2f" % (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.item_list = []
    
        def __str__(self):
            # Python 能够自动的将一对括号内部的代码连接在一起
            return ("户型:%s\n总面积:%.2f[剩余:%.2f]\n家具:%s"
                    % (self.house_type, self.area,
                       self.free_area, self.item_list))
    
        def add_item(self, item):
            print("要添加 %s" % item)
            # 1. 判断家具的面积,这里的item.area要理解清楚。
            if item.area > self.free_area:
                print("%s 的面积太大了,无法添加" % item.name)
                return
    
            # 2. 将家具的名称添加到列表中
            self.item_list.append(item.name)
    
            # 3. 计算剩余面积
            self.free_area -= item.area
    
    # 1. 创建家具
    bed = HouseItem("席梦思", 4)
    chest = HouseItem("衣柜", 3)
    table = HouseItem("餐桌", 2)
    
    print(bed)
    print(chest)
    print(table)
    
    # 2. 创建房子对象
    my_home = House("两室一厅", 60)
    
    # 3.添加了三个对象
    my_home.add_item(bed)
    my_home.add_item(chest)
    my_home.add_item(table)
    
    print(my_home)
    

    最后小结

    • 主程序只负责创建 房子 对象和 家具 对象
    • 房子 对象调用 add_item 方法 将家具添加到房子
    • 面积计算剩余面积家具列表 等处理都被 封装房子类的内部
    ———————————————————————————————————————————————————————— 博客记录日常学习内容~
    展开全文
  • 实例一:摆放家具 需求如下: 家具(HouseItem)有名字和占地面,其中 席梦思(bed) 占地 4 平米 衣柜(chest) 占地 2 平米 餐桌(table) 占地 1.5 平米 打印出家具名称呵占地面积 分析:从以上需求我们可以看出 类是家具...
  • Python_案例(摆放家具)

    千次阅读 2021-09-03 19:33:49
    item 这个方法的时候, 就可以让剩余面积减去家具的占地面积,这样每添加一个家具,剩余面积就会不断的减少, 这个就是处理剩余面积的思路, 最后再把家具名称的列表做一个输出, 这就是摆放家具的完整需求。...
  • 摆放家具3.1 创建家具3.2 创建房间3.3 添加家具3.4 小结 目标 封装 小明爱跑步 存放家具 01. 封装 封装 是面向对象编程的一大特点 面向对象编程的 第一步 —— 将 属性 和 方法 封装 到一个抽象的 类 中 外界 ...
  • 一文彻底搞懂python面向对象编程(全网最全!!!)

    千次阅读 多人点赞 2021-08-16 14:29:34
    面向对象: 独立独立存在,在程序开发时,现有类再有对象(属性 方法) 类名 大驼峰命名法 属性 这类事物具有什么样的特征 方法 这类事物具有什么样的行为 对对象的特征描述,通常可以定义成属性 对象具有行为,通常...
  • 科学怪人 不要再到处摆放弗兰肯斯坦的物体了! 该软件包用于JavaScript对象架构验证。 所有对象都必须具有可靠的.toJSON()方法。
  • 正常我们使用Three.js的时候,都是通过模型对象上面的position rotation scale进行设置相关。Three.js通过这三种依次操作是先进行缩放,然后再旋转,最后再设置的位置。 那我们是否能够自己通过矩阵实现对模型的...
  • 对象模型

    千次阅读 2020-03-26 23:45:58
    目录三种对象模型简单对象模型表格驱动对象模型C++对象模型c++额外成本与对象大小c++额外成本一个类的对象的内存大小包括:构造函数构造函数是否会自动生成1.包含有带默认构造函数的对象成员的类2.继承自带有默认...
  • 完整代码# 搬家具# 需求:将小于房子剩余面积的家具摆放到房子中# 定义类# 先定义家具类class Furniture():def __init__(self,name,area):# 家具名字self.name = name# 家具占地面积self.area = area# 定义房子类...
  • DOM对象和内置对象(上)

    千次阅读 2015-09-04 19:34:33
    在第一篇博客《了解JavaScript》中已经介绍了DOM及DOM树里顶端对象window,还有它的一个子对象 document。接下来会接受它们的一些实用的对象和方法,如: 1、alert()、prompt()和confirm()与用户交互。 2、...
  • python中面向对象基础

    千次阅读 2021-11-10 12:39:55
    理解面向对象 类和对象 添加和获取对象属性 魔法方法 一、理解面向对象 面向对象是一种抽象化的编程思想。 而面向对象最典型的例子就是洗衣机,你洗衣服只需要会使用洗衣机即可,而不需要去了解它的内部结构。 ...
  • 深入浅出Python——Python高级语法之面向对象

    千次阅读 多人点赞 2020-08-02 19:26:34
    文章目录一、理解面向对象二、类和对象1. 理解类和对象1.1 类1.2 对象2. 面向对象实现方法2.1 定义类2.2 定义类2.3 self三、添加和获取对象属性1. 类外面添加对象属性2. 类外面获取对象属性3. 类里面获取对象属性四...
  • Unity 从UI中拖拽对象放置并拖动

    千次阅读 多人点赞 2018-07-31 15:49:04
    对象空间坐标变换(世界坐标->屏幕坐标、屏幕坐标->世界坐标) 首先为要生成3D对象的UI添加一个鼠标监听事件,脚本如下: SelectImage.cs using System.Collections; using...
  • 面向对象三大特点

    千次阅读 2018-09-13 11:16:55
    1.封装是面向对象编程的一大特点 2.面向对象编程的第一步,将属性和方法封装到一个抽象的类中(抽象是因为类不能被直接使用) 3.外界使用类创建对象,然后让那个对象调用方法 4.对象方法的细节都被封在类的内部 ...
  • 数组是为了解决同类数据整合摆放而提出的,可以理解为一组具有相同类型的变量的集合,它的每个元素都具有相同的数据类型。 2.数组的声明 1.<data_type>[] <array_name>; 2.<data_type> <array...
  • 前端基础-CSS伪对象

    2020-03-30 16:53:34
    对象 概念:就是给元素追加一个虚拟标签,由css加载,可以节省html的资源开销,必须有content属性,默认是行元素,可以进行转换。 ::after:在指定的标签后面添加一个对象 ::before:在指定的标签前面添加一个对象 ...
  • 面向对象封装案例

    千次阅读 2019-05-20 22:32:37
    目录 目标1 01. 封装 02. 小明爱跑步 2.1 小明爱跑步扩展 —— 小美也爱跑步 03. 摆放家具 3.1 创建家具 3.2 创建房间 3.3 添加家具 3.4 小结 目标2 01. 士兵突击 ...封装是面向对象编程的一大...
  • 块存储和文件存储是我们比较熟悉的两种主流的存储类型,而对象存储(Object-based Storage)是一种新的网络存储架构,基于对象存储技术的设备就是对象存储设备(Object-based Storage Device)简称OSD。 首先,...
  • 学习虎课网笔记记录; 新建空白的对象的作用有: 打组 摄像机的目标跟踪 景深–(越远越模糊) 其他(正在学习中…) ...新建摄像机和三个立方体以及一个空白对象,立方体摆放不同的位置 点击渲染设置
  • access各对象之间的关系

    千次阅读 2020-02-27 14:58:21
    access有六个对象,分别是: 表(Table) ——表是数据库的基本对象,是创建其他5种对象的基础。表由记录组成,记录由字段组成,表用来存储数据库的数据,故又称数据表。 查询(Query)——查询可以按索引快速查找到...
  • 面向对象概念及三大特点

    万次阅读 2018-09-19 17:16:52
    面向对象: 面向对象的基本概念 面向对象 oop : object oriented programming 我们之前学习的编程方式就是面向过程的 面向过程和面向对象,是两种不同的编程方式 对比面向过程的特点,可以更好的了解什么是面向...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 25,436
精华内容 10,174
关键字:

对象摆放