“启用”类比较[重复]

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(使用前将#替换为@)

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

随机推荐

  • 在 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