“启用”类比较[重复]

2024-03-03

我需要有关我的 CSC 硬件的帮助。它位于类/对象上,是一个定义圆的简单类,名称为 class Circle(object)。

硬件的确切文本(我完成了该硬件的前两部分,因此第三部分是对初始问题的扩展):

"""通过使用 、>=、

以下代码:

A = Circle(2, 5, 1.5)
B = Circle(-6, 1, 1)
print A < B, A != B, A >= B

应该生成以下输出:

False True True

这是我用于显示圆的坐标和半径的代码:

class Circle(object):
    def __init__(self, x=0, y=0, r=0):
        self.x = x
        self.y = y
        self.r = r
    def __str__(self):
        return "Circle at (%d , %d). Radius: %f" % (self.x, self.y, self.r)

def main():
    print Circle(3, 5, 4.0)

main()

该类的输出是“Circle at (3 , 5).Radius: 4:000000”

我们被指向教科书的某一页,其中包含用于课程的数学运算符:eq(), gt(), ge(), lt(), le(), ne(), ETC。 所以我在想,我的教授想要这样的东西吗?

import math
class Circle(object):
    def __init__(self, x=0, y=0, r=0):
        self.x = x
        self.y = y
        self.r = r
    def __str__(self):
        return "Circle at (%d , %d). Radius: %f" % (self.x, self.y, self.r)
    def calcArea(self, r):
        self.r = r
        return (math.pi)*(r**2)
    def __gt__(self, circ1Radius, circ2Radius)
        self.circ1Radius = circ1Radius
        self.circ2Radius = circ2Radius
        r1 = circ1Radius
        r2 = circ2Radius
        r1 > r2 or r2 > r1
    def __ge__(self, circ1Radius, circ2Radius)
    #And so on for __lt__(), __le__(), __ne__(), etc
def main():
    A = Circle(3,4,1.5) 
    B = Circle(1,2,5.0)
    C = Circle(5,7,7) 
    D = Circle(9,8,3)
    print A < B, B > C, A < C, A >= C
main()
#Output should be "True, False, True, False"

我们是否必须为类中要使用的每个方法进行定义/属性?先感谢您。


您可以使用总排序装饰器 http://docs.python.org/library/functools.html#functools.total_ordering来自 functools,如果您提供,它会生成所有缺少的比较方法__eq__()和另一个。

给定一个定义一个或多个的类 丰富的对比排序方式,这 类装饰器提供其余部分。 这简化了涉及的工作 指定所有可能的富人 比较操作:

该类必须定义以下之一__lt__(), __le__(), __gt__(), or __ge__()。此外,该类还应提供__eq__() method.

例如,

import functools


@functools.total_ordering
class Student:
    def _is_valid_operand(self, other):
        return (hasattr(other, "lastname") and
                hasattr(other, "firstname"))

    def __eq__(self, other):
        if not self._is_valid_operand(other):
            return NotImplemented
        return ((self.lastname.lower(), self.firstname.lower()) ==
                (other.lastname.lower(), other.firstname.lower()))

    def __lt__(self, other):
        if not self._is_valid_operand(other):
            return NotImplemented
        return ((self.lastname.lower(), self.firstname.lower()) <
                (other.lastname.lower(), other.firstname.lower()))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

“启用”类比较[重复] 的相关文章

  • sudo 和 pip 不在同一路径上

    pip and sudo不在我的计算机上的同一路径上 因此当 基本上一直 我需要运行这两个命令时 如下所示 sudo pip install xxx I get sudo pip command not found pip下载软件包 但由于
  • 从 asyncio 子进程获取实时输出

    我正在尝试使用 Python asyncio 子进程来启动交互式 SSH 会话并自动输入密码 实际用例并不重要 但它有助于说明我的问题 这是我的代码 proc await asyncio create subprocess exec ssh
  • Pandas ParserError:标记数据时出错。 C 错误:字符串内有 EOF

    我的数据超过 400 000 行 运行此代码时 f pd read csv filename error bad lines False 我收到以下错误 pandas errors ParserError Error tokenizing
  • setColumnStretch 和 setRowStretch 如何工作

    我有一个使用构建的应用程序PySide2它使用setColumnStretch用于柱拉伸和setRowStretch用于行拉伸 它工作得很好 但我无法理解它是如何工作的 我参考了 qt 文档 但它对我没有帮助 我被困在括号内的两个值上 例如
  • 使用 pyppeteer 与 asyncio 关联来抓取内容

    我用 python 结合编写了一个脚本pyppeteer随着asyncio从其登陆页面抓取不同帖子的链接 并最终通过跟踪通向其内页的 url 来获取每个帖子的标题 我这里解析的内容不是动态的 但是 我利用了pyppeteer and asy
  • 使用 keras 澄清 Yolo v3 模型输出

    我将 yolo v3 模型与 keras 一起使用 该网络为我提供了形状如下的输出容器 1 13 13 255 1 26 26 255 1 52 52 255 所以我找到了这个link https www cyberailab com ho
  • MacOS Big Sur 中的 NPM 错误“找不到 Python 可执行文件”

    我已经花了整整一周的时间寻找这个问题的答案 但没有成功 我查看了每个 StackOverflow 帖子 Google 的每一篇文章以及我能找到的每个相关的 Github 问题 大多数相关错误似乎都比较旧 所以我想知道我的问题是否由于我使用的
  • 让 python 脚本打印到终端而不作为标准输出的一部分返回

    我正在尝试编写一个返回值的 python 脚本 然后我可以将其传递给 bash 脚本 问题是我想要在 bash 中返回一个单一值 但我想要一些东西一路打印到终端 这是一个示例脚本 我们称之为 return5 py usr bin env p
  • 在 ubuntu 中卸载 python 模块

    我必须删除一个名为 django 的 python 模块 一种流行的模块 因为我安装了错误的版本 1 3 py 2 6 中的 beta 如何卸载这个模块 请解释一下 因为我只在 Windows 中使用过 python 而从未在 Ubuntu
  • 如何用pygame画一条虚线?

    我需要在坐标系上绘制正弦波和余弦波 就像在this https i stack imgur com DGI8g png图片 除了没能代表以外 我所有的工作都做得很好虚线和曲线与 pygame 一致 我有与我需要的类似的东西 但我怎样才能让它
  • Python正则表达式替换引号中的文本(引号本身除外)

    例如 我有一个测试字符串 content I opened my mouth Good morning I said cheerfully 我想使用正则表达式删除双语音标记之间的文本 但不删除语音标记本身 所以它会返回 I opened m
  • 熊猫系列到二维数组

    所以 我使用了来自的答案将二维数组放入 Pandas 系列中 https stackoverflow com questions 38840319 put a 2d array into a pandas series将 2D numpy
  • 如何使用 Python 在表单中选择选项?

    我想知道如何以格式如下的形式选择选项 td align left td
  • python 硒 按名称查找元素

    查找电子邮件输入的正确代码是什么https accounts google com ServiceLogin html 是
  • 使用张量流导出神经网络的权重

    我使用张量流工具编写了神经网络 一切正常 现在我想导出神经网络的最终权重以制定单一的预测方法 我怎样才能做到这一点 您需要在训练结束时使用以下命令保存模型tf train Saver https www tensorflow org ver
  • Pandas 根据条件替换数据框值

    我有一个主数据框 df Colour Item Price Blue Car 40 Red Car 30 Green Truck 50 Green Bike 30 然后我有一个价格修正数据框 df pc Colour Item Price
  • 哈希 freezeset 与排序元组

    在 Python 中 给定一组可比较的 可散列的元素s 散列是否更好frozenset s or tuple sorted s 这取决于你在做什么 创建一个更快frozenset 比排序tuple but frozenset占用的内存比tu
  • 我应该在哪里对对象和字段进行 django 验证?

    我正在创建一个 Django 应用程序 它使用 Django Rest Framework 和普通的 django views 作为用户的入口点 我想对模型的独立字段以及整个对象进行验证 例如 字段 根据正则表达式函数输入的车牌是否正确 与
  • 如何在 Jupyter Notebook 中选择 conda 环境

    我安装了 Anaconda 5 3 和 Python 3 7 根环境 之后我使用 Python 3 6 创建了一个新环境 py36 我激活了新环境activate py36 conda env list表明环境是活跃的 但是当我启动 Jup
  • 如何从 Anaconda 更新 Pandas 以及最后是否可以使用 eclipse

    我已经使用以下文档通过 Anaconda 安装了 Python http www kevinsheppard com images 0 09 Python introduction pdf http www kevinsheppard co

随机推荐

  • 在 Recyclerview 中拖动项目时自动滚动滚动条

    我在滚动视图中遇到自动滚动问题 就我而言 有两个 Recyclerview 第一个 Recyclerview 水平滚动 第二个垂直滚动 第一个 RecyclerView 仅用于拖动 第二个 RecyclerView 仅用于放置 两个 rec
  • 拒接来电的问题

    我尝试通过以下代码拒绝来电 private void ignoreCallAidl Context context try tm TelephonyManager context getSystemService Context TELEP
  • 在实例方法中从父级访问类属性

    我想从类继承链中的每个类中读取类属性 像下面这样 class Base object def smart word reader self for word in self words print word class A Base wor
  • 一个 XSD、两个代码生成工具、两个命名空间

    我有一个 XSD 文件 我还想从中生成 C 和 Java 类 我首先根据类所在的 C 命名空间在 XSD 中设置命名空间 生成 使用 Microsoft 工具 运行良好 序列化也运行良好 我可以根据 XSD 验证它们 完美 现在我想使用 J
  • 在更新中从 Stripe 订阅中删除优惠券

    我需要在更新期间删除订阅上的优惠券 我认为将 nil 优惠券传递给 api 应该将其删除 但它只是将其从帖子中删除 还有另一种方法可以这样做 https stripe com docs api discounts subscription
  • 验证失败后恢复输入类型=文件的值

    我有一个带有多个处理文件的输入的表单 javascript 验证非常擅长检查以确保一切正常 但有些事情需要 PHP 进行检查 例如文件的 mime 类型 有时会被拒绝 问题是 当我将用户发送回表单时 我可以重新填充他们最初输入的所有数据 但
  • EF Power Tools Beta 2 - 调用目标已引发异常

    我有 EF 5 0 代码优先 VS 2012 项目 并且所有实体框架菜单命令 查看实体数据模型 DDL SQL 都会生成 调用目标已引发异常 弹出窗口 我认为也发生了变化的是 EF Power Tools Beta 1 或 VS 2010
  • CSS“背景大小”属性 - 跨浏览器解决方案?

    我有一个使用这个 css 的元素 my box padding left 50px background image url images img01 png background size 20px height 20px 我的问题 在
  • RxJava 2.x 中带有背压的 PublishSubject

    我目前正在为我当前的项目选择 RxJava 1 x 或 2 x 我基本上需要一个PublishSubject采用背压策略onBackpressureLatest 我想选择 RxJava 2 x 但我不太清楚如何将反压策略应用于Publish
  • 使用 Dojo 从跨域的 ReST 服务检索 XML 数据

    我正在尝试为 ReST 应用程序编写一个基于浏览器的 Javascript 客户端 该应用程序使用 XML 进行响应 所以看来 JSONP 是不可能的 我正在尝试使用检索数据dojo io script get但传递给回调函数的参数是一个对
  • 佣金详情服务(REST)

    使用 CJ 佣金详细服务 REST 的人能否告诉我此查询的示例 XML 响应是什么 CJ 的 Web 服务文档都没有准确说明 XML 的格式 而且由于我没有任何佣金 所以我只能猜测结果 通过与我的出版商之一签约 我发现了一个艰难的方法
  • 在实现 IEnumerable 的类上序列化自定义属性[重复]

    这个问题在这里已经有答案了 目前 JSON NET 忽略实现 IEnumerable 的类上的所有其他属性并序列化数组 如何告诉 JSON NET 序列化自定义属性 我正在尝试序列化PagedList
  • CSS 中的倒圆角?

    我有一个CSS代码 moz border radius topleft 50px 我得到结果 是否有可能像这样给予 在现代浏览器中 您可以使用mask image aux container width 100px height 100px
  • 当服务器绑定到特定 IP(不是本地主机)时,如何使 Google App Engine python SDK Remote API 与本地开发服务器一起工作?

    使用远程 API remote api shell py 在生产服务器上运行良好 但是 它仅在开发服务器上运行时才有效localhost 当服务器在特定 IP 上运行时 例如 dev appserver py host 192 168 0
  • 使用串行蓝牙连接设备时出现问题

    我面临两个与常规蓝牙相关的问题 这是我的代码 void viewDidLoad super viewDidLoad NSTimer scheduledTimerWithTimeInterval 3 0 target self selecto
  • 如何调用 AngularJS 指令中定义的方法?

    我有一个指令 这是代码 directive map function return restrict E replace true template div div link function scope element attrs var
  • 在另一个窗口中打开另一个进程

    在我的代码中 我想在另一个 python 窗口中启动一个函数 脚本 例如 当您运行一个脚本时 会弹出一个后窗口 我希望该脚本管理其他脚本 它们不需要进行通信 与多处理类似 但它们有自己的弹出窗口和输出 他们的所有信息都将随后写入文件中 我已
  • 从 IEEditorPart (Eclipse) 获取 ITextViewer

    Eclipse RCP 问题 我用以下命令打开文件 IWorkbenchPage page PlatformUI getWorkbench getActiveWorkbenchWindow getActivePage IEditorPart
  • 数字倒着显示?

    当我看到用户的投诉时我不相信 在绑定的 WPF 文本框中键入 123 将显示 321 目前已修复 但我想知道这是否可以归类为 WPF bug 当文本框绑定到实体框架双字段且 UpdateSourceTrigger 绑定模式设置为 Prope
  • “启用”类比较[重复]

    这个问题在这里已经有答案了 我需要有关我的 CSC 硬件的帮助 它位于类 对象上 是一个定义圆的简单类 名称为 class Circle object 硬件的确切文本 我完成了该硬件的前两部分 因此第三部分是对初始问题的扩展 通过使用 gt