Python强迫一个条件

时间:2014-09-09 15:13:03

标签: python

有没有办法在Python中强制条件成立?我以前看过它是在Haskell中完成的,我想知道你是否可以用Python做。例如:

>>> 2+2==5
True

3 个答案:

答案 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
>>>