《python语言程序设计》2018版第8章19题几何Rectangle2D类(上)--原来我可以直接调用

news2024/10/5 4:46:37

在这里插入图片描述
2024.9.29
玩了好几天游戏。
感觉有点灵感了。还想继续玩游戏。
2024.10.4
今天练习阿斯汤加练完从早上10点睡到下午2点.跑到单位玩游戏玩到晚上10点多.
现在回家突然有了灵感
顺便说一句,因为后弯不好,明天加练一次.
然后去丈母娘家.
加油吧

第一章、追求可以外调的函数draw_rec2

  • 我在self的基础上如何让它的变量能够被外部调用.
  • 在这个代码前self 后面加了一个other_rec利用他来作为输入的入口.也是为了扣题上所说的.
    • 但实际的问题却很头疼.
      • 1 statement expected,found py:dedemt
      • 2 Method 'draw_rec2' may be 'static'
      • 不管了实际试一下看看如何
        • 只绘制rec1成功
  • 奇怪的计算
    • 出错的提示![请添加图片描述](https://i-blog.csdnimg.cn/direct/1015ea02ea2840298b124b0d4ff356c1.png)
    • 似乎发现点什么??
      • TypeError: unsupported operand type(s) for -: 'method' and 'float'
    • 成功了原来直接调用可以不用out
      • 原来直接调用就可以不用额外做一个,来玩改一下之前Rectangle2D的类
        • 可能有些啰嗦,但是大家看到了.对比第一章我是不是去掉了out_x之类的.原来我是可以直接通过私有函数将x,y,widht,height.调用的呀.
      • 结果
  • 水平问题rec2的位置没有设计好.下集再弄,明早上7点30瑜伽后弯,天呐.

我在self的基础上如何让它的变量能够被外部调用.

 def draw_rec2(self, other_rec):
        x = other_rec.out_x
        y = other_rec.out_y
        width_r = other_rec.out_width
        height_r = other_rec.out_height
        turtle.penup()
        turtle.goto(x, y)
        turtle.dot(6, "yellow")
        turtle.goto(width_r/ 2 + x, height_r/2 + y)
        turtle.pendown()
        turtle.forward(width_r)
        turtle.right(90)
        turtle.forward(height_r)
        turtle.right(90)
        turtle.forward(width_r)
        turtle.right(90)
        turtle.forward(height_r)
        turtle.hideturtle()
        turtle.done()

在这个代码前self 后面加了一个other_rec利用他来作为输入的入口.也是为了扣题上所说的.

但实际的问题却很头疼.

1 statement expected,found py:dedemt

请添加图片描述
请添加图片描述

2 Method ‘draw_rec2’ may be ‘static’

请添加图片描述

不管了实际试一下看看如何


class Rectangle2D:
    def __init__(self, x, y, width, height):
        self.__x = x
        self.__y = y
        self.__width = width
        self.__height = height

    def get_area(self):
        return self.__width * self.__height

    def get_perimeter(self):
        return (self.__width + self.__height) * 2

    def out_x(self):
        return self.__x

    def out_y(self):
        return self.__y

    def out_width(self):
        return self.__width

    def out_height(self):
        return self.__height
        
    # 他内带绘画矩形,直接调用的self
    def draw_rec1(self):
        turtle.penup()
        turtle.goto(self.__x, self.__y)
        turtle.dot(6, "blue")
        turtle.goto(self.__x-self.__width / 2 , self.__height / 2 + self.__y)
        turtle.pendown()
        turtle.forward(self.__width)
        turtle.right(90)
        turtle.forward(self.__height)
        turtle.right(90)
        turtle.forward(self.__width)
        turtle.right(90)
        turtle.forward(self.__height)
        turtle.hideturtle()
        turtle.done()
    #此处是调用外部的矩形并且绘画
    def draw_rec2(self, other_rec):
        x = other_rec.out_x
        y = other_rec.out_y
        width_r = other_rec.out_width
        height_r = other_rec.out_height
        turtle.penup()
        turtle.goto(x, y)
        turtle.dot(6, "yellow")
        turtle.goto(x - width_r / 2, height_r / 2 + y)
        turtle.pendown()
        turtle.forward(width_r)
        turtle.right(90)
        turtle.forward(height_r)
        turtle.right(90)
        turtle.forward(width_r)
        turtle.right(90)
        turtle.forward(height_r)
        turtle.hideturtle()
        turtle.done()


a = Rectangle2D(100, 0, 50, 60)


def main():
    #调用它成功
    a.draw_rec1()
   


main()

只绘制rec1成功

请添加图片描述

第二章、各种问题的展示

  • 我在self的基础上如何让它的变量能够被外部调用.
  • 在这个代码前self 后面加了一个other_rec利用他来作为输入的入口.也是为了扣题上所说的.
    • 但实际的问题却很头疼.
      • 1 statement expected,found py:dedemt
      • 2 Method 'draw_rec2' may be 'static'
      • 不管了实际试一下看看如何
        • 只绘制rec1成功
  • 奇怪的计算
    • 出错的提示![请添加图片描述](https://i-blog.csdnimg.cn/direct/1015ea02ea2840298b124b0d4ff356c1.png)
    • 似乎发现点什么??
      • TypeError: unsupported operand type(s) for -: 'method' and 'float'
    • 成功了原来直接调用可以不用out
      • 原来直接调用就可以不用额外做一个,来玩改一下之前Rectangle2D的类
        • 可能有些啰嗦,但是大家看到了.对比第一章我是不是去掉了out_x之类的.原来我是可以直接通过私有函数将x,y,widht,height.调用的呀.
      • 结果
  • 水平问题rec2的位置没有设计好.下集再弄,明早上7点30瑜伽后弯,天呐.

奇怪的计算

篇幅关系仅仅展示增加修改的地方.其他和上面的代码一样.


a = Rectangle2D(100, 0, 50, 60)
b = Rectangle2D(60, 0, 80, 30)


def main():
    a.draw_rec1()
    a.draw_rec2(b)



main()

出错的提示请添加图片描述

请添加图片描述

似乎发现点什么??

我把draw_rec1的属于self的代码加入到了draw_rec2里刚才所谓的static提示消失了.静态变动态了!!

TypeError: unsupported operand type(s) for -: ‘method’ and ‘float’

成功了原来直接调用可以不用out


    def draw_rec2(self, other_rec):
        x_1 = other_rec.__x
        y_1 = other_rec.__y
        width_r = other_rec.__width
        height_r = other_rec.__height
        turtle.penup()
        turtle.goto(self.__x, self.__y)
        turtle.dot(6, "blue")
        turtle.goto(self.__x - self.__width / 2, self.__height / 2 + self.__y)
        turtle.pendown()
        turtle.forward(self.__width)
        turtle.right(90)
        turtle.forward(self.__height)
        turtle.right(90)
        turtle.forward(self.__width)
        turtle.right(90)
        turtle.forward(self.__height)

原来直接调用就可以不用额外做一个,来玩改一下之前Rectangle2D的类


class Rectangle2D:
    def __init__(self, x, y, width, height):
        self.__x = x
        self.__y = y
        self.__width = width
        self.__height = height

    def get_area(self):
        return self.__width * self.__height

    def get_perimeter(self):
        return (self.__width + self.__height) * 2


    def draw_rec1(self):
        turtle.penup()
        turtle.goto(self.__x, self.__y)
        turtle.dot(6, "blue")
        turtle.goto(self.__x-self.__width / 2 , self.__height / 2 + self.__y)
        turtle.pendown()
        turtle.forward(self.__width)
        turtle.right(90)
        turtle.forward(self.__height)
        turtle.right(90)
        turtle.forward(self.__width)
        turtle.right(90)
        turtle.forward(self.__height)
        turtle.hideturtle()
        turtle.done()

    def draw_rec2(self, other_rec):
        x_1 = other_rec.__x
        y_1 = other_rec.__y
        width_r = other_rec.__width
        height_r = other_rec.__height
        turtle.penup()
        turtle.goto(self.__x, self.__y)
        turtle.dot(6, "blue")
        turtle.goto(self.__x - self.__width / 2, self.__height / 2 + self.__y)
        turtle.pendown()
        turtle.forward(self.__width)
        turtle.right(90)
        turtle.forward(self.__height)
        turtle.right(90)
        turtle.forward(self.__width)
        turtle.right(90)
        turtle.forward(self.__height)


        turtle.penup()
        turtle.goto(x_1, y_1)
        turtle.dot(6, "yellow")
        turtle.goto(x_1 - width_r / 2, height_r / 2 + y_1)
        turtle.pendown()
        turtle.forward(width_r)
        turtle.right(90)
        turtle.forward(height_r)
        turtle.right(90)
        turtle.forward(width_r)
        turtle.right(90)
        turtle.forward(height_r)
        turtle.hideturtle()
        turtle.done()
可能有些啰嗦,但是大家看到了.对比第一章我是不是去掉了out_x之类的.原来我是可以直接通过私有函数将x,y,widht,height.调用的呀.

结果

请添加图片描述

水平问题rec2的位置没有设计好.下集再弄,明早上7点30瑜伽后弯,天呐.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2189246.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Spring Boot集成encache快速入门Demo

1.什么是encache EhCache 是一个纯 Java 的进程内缓存框架,具有快速、精干等特点,是 Hibernate 中默认的 CacheProvider。 Ehcache 特性 优点 快速、简单支持多种缓存策略:LRU、LFU、FIFO 淘汰算法缓存数据有两级:内存和磁盘&a…

【Git】vscode链接github拉去镜像

1.拉取别人的项目到自己的仓库 2.回到自己的仓库拉取文件到vscode里面下载 使用vscode进入虚拟机 推送到自己的仓库上面 在 github 页面将修改的内容 PR 到 Tutorial 创建一个个人仓库 代码如下 cd demo git clone https://github.com/3154067760/Tutorial.git cd Tutorial/…

贴吧软件怎么切换ip

在网络使用中,有时我们需要切换IP地址来满足特定的需求,比如需要切换贴吧软件IP以进行不同的操作。本文将介绍几种贴吧切换IP地址的方法,帮助用户更好地管理自己的网络身份和访问权限。 1、更换网络环境‌ 通过连接到不同的Wi-Fi网络或使用移…

HBuilderX连接MuMu模拟器最简单的方法

1、在MuMu官网下载MuMu模拟器官网_安卓12模拟器_网易手游模拟器 跟随步骤安装 2、安装后打开MuMu多开器,查看ADB端口号 或者启动MuMu模拟器在问题诊断中查看 3、在HBuilder中配置模拟器端口号和adb路径 4.配置环境变量 5、adbl连接端口 打开cmd运行以下命令 adb …

系统架构设计师-下午案例题(2022年下半年)

1.试题-(共25分):阅读以下关于软件架构设计与评估的叙述在答题纸上回答问题1和问题2。 【说明】某电子商务公司拟升级其会员与促销管理系统,向用户提供个性化服务,提高用户的粘性。在项目立项之初,公司领导层一致认为本次升级的主要目标是提…

随笔(四)——代码优化

文章目录 前言1.原本代码2.新增逻辑3.优化逻辑 前言 原逻辑:后端data数据中返回数组,数组中有两个对象,一个是属性指标,一个是应用指标,根据这两个指标展示不同的多选框 1.原本代码 getIndicatorRange(indexReportLi…

逗比大神(ToyoDAdoubi)的ShadowsocksR/SSR一键搭建脚本

逗比大神(ToyoDAdoubi)的ShadowsocksR/SSR一键搭建脚本(推荐) 我推荐新手小白用户使用逗比大神(ToyoDAdoubi)的SSR一键搭建脚本,因为全中文界面,操作更加简单方便。 此一键安装脚本支持 CentOS 6、Debian 7、Ubuntu 12 及以上系…

10.4学习

1.Transactional 注意事项: ①事务函数中不要处理耗时任务,会导致长期占有数据库连接。 ②事务函数中不要处理无关业务,防止产生异常导致事务回滚。 ●事务传播属性 ①REQUIRED(默认属性) 如果存在一个事务&#…

ROS基础入门——实操教程

ROS基础入门——实操教程 前言 本教程实操为主,少说书。可供参考的文档中详细的记录了ROS的实操和理论,只是过于详细繁杂了,看得脑壳疼,于是做了这个笔记。 Ruby Rose,放在这里相当合理 本文初编辑于2024年10月4日 C…

云原生(四十五) | ECS服务器项目部署实战

文章目录 ECS服务器项目部署实战 一、ECS服务器项目部署说明 二、下载WordPress 三、部署WordPress需要哪些应用 ECS服务器项目部署实战 一、ECS服务器项目部署说明 案例:为了让大家更好的理解ECS服务器的使用场景,我们通过一个比较经典的WordPres…

红日靶机(三)笔记

VulnStack-红日靶机三 概述 相较于前边两个靶场环境,靶场三的难度还是稍难一点,有很多兔子洞,这就考验我们对已有信息的取舍和试错,以及对渗透测试优先级的判断。涉及到对数据库操作的试错,对 joomla 框架 cve 的快速…

vSAN01:vSAN简介、安装、磁盘组、内部架构与调用关系

目录 传统的共享存储vSAN存储OSA的系统要求vSAN安装vSAN集群vSAN skyline healthvSAN与HA磁盘组混合磁盘架构全闪磁盘架构 vSAN对象vSAN内部架构 传统的共享存储 通过隔离的存储网络使得不同的ESXi主机访问独立的存储设备。需要前期投入较高的资金单独采购存储、网络可以单独规…

OAuth2.0 设备授权流程

OAuth2.0设备授权流程(Device Authorization Grant)是一种为缺乏输入能力的设备(例如智能电视、游戏机、物联网设备等)设计的授权模式。这些设备通常不具备复杂的键盘或指定输入方式,无法直接进行OAuth2.0标准的交互授…

8c语言基础文件

关于文件你必须了解的一些基本概念 什么是文件? 文件是计算机文件,属于文件的一种,与普通文件的载体不同,计算机文件是以计算机硬盘为载体存储在计算机上的信息集合。 在程序设计中,我们一般关注的文件有两类&#x…

【C++】空指针和野指针

文章目录 1.空指针2.野指针总结 1.空指针 概念:指针变量指向内存中编号为0的空间。 用途:初始化指针变量。 注意:空指针指向的内存是不可以访问的。 示例: int main(){//指针变量p指向内存地址编号为0的空间int *PNULL&#…

从零开始学cv-15:图像分割

文章目录 前言一、全局阈值分割:二、自适应阈值分割:三、分水岭算法: 前言 在当代计算机视觉领域,图像分割技术扮演着至关重要的角色,它为图像理解、目标识别和场景解析等高级视觉任务提供了基础。OpenCV,…

Redis:hash类型

Redis:hash类型 hash命令设置与读取HSETHGETHMGET 哈希操作HEXISTSHDELHKEYSHVALSHGETALLHLENHSETNXHINCRBYHINCRBYFLOAT 内部编码ziplisthashtable 目前主流的编程语言中,几乎都提供了哈希表相关的容器,Redis自然也会支持对应的内容&#xf…

李宏毅深度学习-循环神经网络RNN

Recurrent Neural Network 这个问题可以使用一个前馈神经网络(feedforward neural network)来解,如图5.2 所示, 输入是一个单词,把“上海”变成一个向量,“丢”到这个神经网络里面。输入是一个单词&#x…

平衡二叉搜索树---java---黑马

平衡二叉搜索树 AVL树的实现 二叉搜索树在插入和删除时,节点可能发生失衡;如果在插入和删除时通过旋转,始终让二叉搜索树保持平衡,称之为平衡二叉搜索树;AVL树是自平衡二叉搜索树的实现之一 LL - 失衡节点(图中5红…

项目-坦克大战学习笔记-地图完善

之前我们详细讲解了怎么在地图上绘制墙&#xff0c;这次我们来完善整个地图&#xff0c; 地图的静态物体构成分为可破坏的墙体&#xff0c;不可破坏的铁块&#xff0c;以及最终boos 那我们为了方便存储将三个对象分开放为3个列表 private static List<gudin> walllist…