假设我们有一段错误的代码不小心覆盖了某个系统库的属性,如下所示:
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)