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

在这里插入图片描述
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_xy = other_rec.out_ywidth_r = other_rec.out_widthheight_r = other_rec.out_heightturtle.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 = xself.__y = yself.__width = widthself.__height = heightdef get_area(self):return self.__width * self.__heightdef get_perimeter(self):return (self.__width + self.__height) * 2def out_x(self):return self.__xdef out_y(self):return self.__ydef out_width(self):return self.__widthdef out_height(self):return self.__height# 他内带绘画矩形,直接调用的selfdef 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_xy = other_rec.out_ywidth_r = other_rec.out_widthheight_r = other_rec.out_heightturtle.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.__xy_1 = other_rec.__ywidth_r = other_rec.__widthheight_r = other_rec.__heightturtle.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 = xself.__y = yself.__width = widthself.__height = heightdef get_area(self):return self.__width * self.__heightdef get_perimeter(self):return (self.__width + self.__height) * 2def 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.__xy_1 = other_rec.__ywidth_r = other_rec.__widthheight_r = other_rec.__heightturtle.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.xdnf.cn/news/1554907.html

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

相关文章

【Python】pyenv:管理多版本 Python 环境的利器

pyenv 是一个强大的 Python 版本管理工具,它允许开发者在同一台计算机上轻松安装和管理多个 Python 版本。对于需要在不同项目中使用不同 Python 版本的开发者来说,pyenv 是一个非常有用的工具,因为它可以帮助用户在全局和项目级别控制 Pytho…

C/C++/EasyX——入门图形编程(4)

【说明】紧接上文(。・ω・。),好了,接下来,就让我们开始学习图像处理和获取鼠标消息的函数吧。(各位友友们不要着急,想在短时间内就想做小游戏或者写出各种好看的画面是不简…

小白快速上手 Docker 03 | Docker数据卷

数据卷 在前面使用Docker时,可能会遇到以下几个问题: 当Docker 里的容器挂了以后打不开,这时候只有删除该容器了,但删除容器会连容器中的产生的数据也一起删除了,大部分场景下这是不能接受的。Docker容器与容器之间不…

【深度学习基础模型】深度残差网络(Deep Residual Networks, DRN)详细理解并附实现代码。

【深度学习基础模型】深度残差网络(Deep Residual Networks, DRN)详细理解并附实现代码。 【深度学习基础模型】深度残差网络(Deep Residual Networks, DRN)详细理解并附实现代码。 文章目录 【深度学习基础模型】深度残差网络&a…

使用前端三剑客实现一个备忘录

一,界面介绍 这个备忘录的界面效果如下: 可以实现任务的增删,并且在任务被勾选后会被放到已完成的下面。 示例: (1),增加一个任务 (2),勾选任务 &#xff…

Chat登录时出现SSO信息出错的解决方法

目录 1. 问题所示2. 问题所示3. 解决方法 1. 问题所示 此贴主要是总结回顾,对此放置在运维专栏 出现如下问题,很懵,以为是节点挂了还是网址蹦了 一直刷新,登录之后就出现这个问题 2. 问题所示 对于SSO,也就是单点登…

ExcelToWord-Excel套打Word-Word邮件合并工具分享

Excel to Word转换工具分享 在日常工作或学习中,我们常常需要将Excel中的数据导出到Word文档中,以便更好地展示信息。市场上有许多Excel to Word的转换工具,它们各有特色。今天,我们就来推荐几款这样的工具,并探讨一下…

基于Springboot+Vue的教师科研管理系统 (含源码数据库)

1.开发环境 开发系统:Windows10/11 架构模式:MVC/前后端分离 JDK版本: Java JDK1.8 开发工具:IDEA 数据库版本: mysql5.7或8.0 数据库可视化工具: navicat 服务器: SpringBoot自带 apache tomcat 主要技术: Java,Springboot,mybatis,mysql,vue 2.视频演示地址 3.功能 系统中…

用Python实现运筹学——Day 12: 线性规划在物流优化中的应用

一、学习内容 线性规划在物流优化中可以用于解决诸如配送路径优化、货物运输调度等问题。配送中心的路径优化问题本质上是寻找一条最优路径,在满足需求点的需求条件下,最小化配送的总运输成本或时间。常见的物流优化问题包括: 配送中心的货…

Python小示例——质地不均匀的硬币概率统计

在概率论和统计学中,随机事件的行为可以通过大量实验来研究。在日常生活中,我们经常用硬币进行抽样,比如抛硬币来决定某个结果。然而,当我们处理的是“质地不均匀”的硬币时,事情就变得复杂了。质地不均匀的硬币意味着…

【C++】—— 类和对象(中)

【C】—— 类和对象(中) 文章目录 【C】—— 类和对象(中)前言1. 类的默认成员函数2. 构造函数3. 析构函数4. 拷贝构造函数5. 赋值运算符重载5.1 运算符重载5.2 赋值运算符重载 结语 前言 小伙伴们大家好呀,昨天的 【C】——类和对象(上) 大家理解的怎么样了 今天…

网约班车升级手机端退票

背景 作为老古董程序员,不,应该叫互联网人员,因为我现在做的所有的事情,都是处于爱好,更多的时间是在和各行各业的朋友聊市场,聊需求,聊怎么通过IT互联网 改变实体行业的现状,准确的…

卡码网KamaCoder 53. 寻宝

题目来源:53. 寻宝(第七期模拟笔试) C题解(来源代码随想录):最小生成树 prim prim三部曲 第一步,选距离生成树最近节点第二步,最近节点加入生成树第三步,更新非生成树节…

随时随地,轻松翻译:英汉互译软件的便捷之旅

翻译英汉互译工具,就如同一位随时待命的语言助手,在这纷繁复杂的语言世界中为我们搭建起理解与沟通的桥梁。接下来,让我们一同深入了解这些神奇的英汉互译工具,探索它的诸多功能和独特魅力。 1.福晰在线翻译 链接直达>>h…

Python案例--三数排序

一、引言 在信息爆炸的时代,我们每天都会接触到大量的数据。无论是工作中的报表、学习中的数据集,还是日常生活中的购物清单,数据的有序性对于提高效率和决策质量都至关重要。排序算法作为数据处理的基础工具,其重要性不言而喻。…

RTSP协议讲解

1.RTSP协议 rtsp,英文全称 Real Time Streaming Protocol,RFC2326,实时流传输协议,是 TCP/IP 协议体系中的一个应用层协议。 RTSP 交互流程 1)OPTIONS C--->S 客户端向服务器端发现 OPTIONS,请求可用…

netty之SpringBoot+Netty+Elasticsearch收集日志信息数据存储

前言 将大量的业务以及用户行为数据存储起来用于分析处理,但是由于数据量较大且需要具备可分析功能所以将数据存储到文件系统更为合理。尤其是一些互联网高并发级应用,往往数据库都采用分库分表设计,那么将这些分散的数据通过binlog汇总到一个…

Go基础学习11-测试工具gomock和monkey的使用

文章目录 基础回顾MockMock是什么安装gomockMock使用1. 创建user.go源文件2. 使用mockgen生成对应的Mock文件3. 使用mockgen命令生成后在对应包mock下可以查看生成的mock文件4. 编写测试代码5. 运行代码并查看输出 GomonkeyGomonkey优势安装使用对函数进行monkey对结构体中方法…

SQL专项练习第二天

在数据处理和分析中,Hive 是一个强大的工具。本文将通过五个 Hive 相关的问题展示其在不同场景下的应用技巧。 先在home文件夹下建一个hivedata文件夹,把我们所需的数据写成txt文件导入到/home/hivedata/文件夹下面。 一、找出连续活跃 3 天及以上的用户…

茄子病虫害数据集。四类:果肉腐烂、蛀虫、健康、黄斑病。4000张图片,已经按照8:2的比例划分好训练集、验证集 txt格式 含类别yaml文件 已经标注好

茄子病虫害数据集。可用于筛选茄子品质、质量,训练采摘机器人视觉算法模型……数据集大部分图片来源于真实果园拍摄的图片(生长在果树之上的),图片分辨率高,数据集分为四类:果肉腐烂、蛀虫、健康、黄斑病。…