我想要

class MyClass(object):
    _my_unique = ????      # if this were lisp, I would have written (cons nil nil) here

    def myFunc (self, arg):
        assert arg != _my_unique    # this must never fail
        ...

用什么代替???来确保assert永远不会失败?
(使用lisp,我可以用_my_unique创建(cons nil nil),并在eq中使用assert)。
用例:我将把_my_unique放在dict中,所以我希望它等于自身,但我不希望它等于(在dict冲突意义上)从外部传入的任何东西。

最佳答案

您可以使用object(),但这不会使断言“永不失败”。如果调用myFunc并将MyClass.my_unique作为对象传递,它仍将失败。此外,如果要测试它是否是同一个对象,请使用arg is not my_unique而不是!=

09-10 03:51
查看更多