如何在类中创建一个将负角度交换为正角度的方法?

2024-04-19 07:51:23 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我的代码:

class test(object):
    """\
given angle is within 360 degrees"""
    def __init__(self, angle):
        self.angle = angle
    def __str__(self):
        return "This is going to be positive {}".format(self.angle)
    def __neg__(self):
        """\
    when given a negative angle it will be translated into a positive"""
        if self.angle < 0:
            return test(self.angle + 360)
angle = test(-100)
print(angle)

输出为:

^{pr2}$

我怎样才能得到260的角而不是这个负数呢?我被难住了。在


Tags: 代码testselfreturnobjectinitisdef
1条回答
网友
1楼 · 发布于 2024-04-19 07:51:23

您需要在构造函数(__init__)中执行否定检查。__neg__应该返回一个新的test,它是self的负数。在

class test(object):
    """\
given angle is within 360 degrees"""
    def __init__(self, angle):
        self.angle = angle % 360
    def __str__(self):
        return "This is going to be positive {}".format(self.angle)
    def __neg__(self):
        """\
    when given a negative angle it will be translated into a positive"""
        return test(-self.angle)
angle = test(-100)
print(angle)

相关问题 更多 >