有没有办法在Python中强制条件成立?我以前看过它是在Haskell中完成的,我想知道你是否可以用Python做。例如:
>>> 2+2==5
True
答案 0 :(得分:8)
您可以为子类int重新定义相等运算符:
>>> class MyInt(int):
... def __eq__(self, other):
... return True
...
>>> five = MyInt(5)
>>> five
5
>>> 2+2 == five
True
这是自己尝试这些答案中最不害的。但是如果您在生产代码中执行此操作(或其中任何一项),您可能会被解雇。
答案 1 :(得分:8)
嗯,你只需要设置四等于五。
import ctypes
def deref(addr, typ):
return ctypes.cast(addr, ctypes.POINTER(typ))
deref(id(4), ctypes.c_int)[6] = 5
2 + 2
#>>> 5
2 + 2 == 5
#>>> True
...显然
答案 2 :(得分:4)
$ python
Python 2.7.6 (default, Mar 22 2014, 22:59:56)
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.displayhook = lambda x : sys.__displayhook__(True if x is False else x)
>>> 2+2==5
True
>>>