如何在Python交互模式下撤销True = False?
所以我尝试了Ned Deily在他的回答中提到的“邪恶”事情。 现在我已经知道Truetypes现在总是False。 我如何在交互式窗口中反转这个?
事情不要做:
True = False 由于True现在已被False完全覆盖,似乎没有明显的回溯方式。 是否有一个真正的来自我可以做类似的模块:
 True = <'module'>.True 
	
 您可以简单地del您的自定义名称以将其设置恢复为默认值: 
 >>> True = False >>> True False >>> del True >>> True True >>> 
这工作:
 >>> True = False >>> True False >>> True = not False >>> True True 
 但是如果False被弄乱了也会失败。 因此,这是更好的: 
 >>> True = not None 
 因为None不能被重新分配。 
 无论True是否被重新分配到False ,这些也都评价为True , 5 , 'foo' , None等: 
 >>> True = True == True # fails if True = float('nan') >>> True = True is True >>> True = not True or not not True >>> True = not not True if True else not True >>> True = not 0 
其他方式:
 >>> True = 1 == 1 >>> False = 1 == 2 
 为了完整性,Kevin提到你也可以从__builtins__获取真实的True : 
 >>> True = False >>> True False >>> True = __builtins__.True >>> True True 
但是,这也可以被覆盖:
 >>> __builtins__.True = False >>> __builtins__.True False 
所以更好的去与其他选项之一。
只要这样做:
 True = bool(1) 
或者,因为布尔值本质上是整数:
 True = 1 
 解决scheme不使用对象字面值,但像1 == 1一样持久。 当然,一旦定义了True,你就可以定义False,所以我将提供解决scheme。 
 def f(): pass class A(): pass True = not f() False = A != A 
 False = not (lambda:_).__gt__(_) True = not (lambda:_).__doc__