Java与Python的_; eq _;和_; bool等价__

2024-05-12 21:52:37 发布

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

我想在我的Java实例上快速执行等价性和布尔测试。如何在Java中实现与Python3代码等效的功能?(请注意,没有对任何属性的引用—只有实例本身)

test.py

class Number:
    def __init__(self,n):
        self.n = n
    def __eq__(self, num):
        return self.n == num
    def __bool__(self):
        return True

def main():
    t = Number(10)
    if t == 10:
        print("Equivalency")
    if t:
        print("Boolean")

if __name__ == "__main__":
    main()

输出

$ python3 test.py
Equivalency
Boolean

Tags: 实例pytestselfnumberreturnifmain
1条回答
网友
1楼 · 发布于 2024-05-12 21:52:37

您不能重写==,也不能实现__bool__等价物。然而,您最明确地应该覆盖equals()(也可能是hashCode())。一切都将使用此equals方法来比较对象相等性。使用==的唯一时间是,如果您想查看两个变量是否指向内存中的同一对象

@Override
public boolean equals(Object other) {
    ...
}

相关问题 更多 >