次のように、システム ライブラリの属性を誤ってオーバーライドするバグのあるコードがあるとします。
import socket
socket.error = 'some other object'
この動作を防ぐ方法、またはその原因となっているコードを見つける方法はありますか?
socket.error からプロパティを作成しようとしましたが、うまくいきませんでした:
def fget(self):
return socket.error
def fset(self, value):
raise SystemError('You cannot alter this attribute.')
# From now on, settings socket.error = x should raise an error
socket.error = property(fget, fset)