(這是不是一個原子測試和設置)是否可以向bool類添加測試和設置,測試和清除?
所有我想要的是能夠寫出這樣的代碼:的
need_cleanup = True
...
if need_cleanup.test_and_clear():
cleanup()
代替:
if need_cleanup:
cleanup()
need_cleanup = False
恕我直言,這樣做不要在布爾課中破壞任何東西。
試圖加入一個方法結束了:
TypeError: can't set attributes of built-in/extension type 'bool'
這可能與該布爾類不能被繼承的已知的限制,但我不希望它的子類。
有沒有辦法解決它?
編輯:我想我已經得到了答案。這是不可能的,因爲布爾是不可變的。從False
切換到True
(反之亦然)用分別與True
或False
常數相同的新對象代替布爾對象。顯然,調用一個方法不能做到這一點。禁止的子類只是吸引我的注意...