우리가 실수로 같은 일부 시스템 라이브러리의 속성을 재정의합니다 코드의 버그 조각을 말해봐 :파이썬에서 시스템 라이브러리의 속성을 덮어 쓰지 않으려면 어떻게해야합니까?
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)
를 얻을? '$ grep -r 'socket.error ='*' – danodonovan
정말 프로덕션 코드에서는 거의 발생하지 않습니다. 일어날 때 당신은 충분히 빨리 알아낼 것이고 grep은 당신의 친구입니다. –
grep이 (가) 아무것도 찾지 못했습니다. 장난 꾸러기 줄은 아마도'sock과 같은 import socket; x = '오류'; setattr (sock, x, 'some other object')' –