Python에서 동적 속성 설정에 'eval'을 사용하는 것이 위험할 수 있는 이유
Python에서 'eval' 함수를 사용하면 다음을 실행할 수 있습니다. Python 코드로서의 문자열. 클래스에서 속성을 동적으로 설정하는 것이 편리해 보일 수 있지만 'eval'을 사용하는 것은 일반적으로 나쁜 습관으로 간주됩니다.
'eval' 사용의 위험
대체 해결 방법: 'setattr' 사용
'setattr' 함수 속성을 동적으로 설정하는 더 안전하고 효율적인 방법을 제공합니다. 세 가지 인수를 사용합니다:
예를 들어 다음 코드는 'setattr'을 사용하여 'Song'에 속성을 설정합니다. class:
class Song: attsToStore = ('Name', 'Artist', 'Album', 'Genre', 'Location') def __init__(self): for att in self.attsToStore: setattr(self, att.lower(), None) def set_detail(self, key, val): if key in self.attsToStore: setattr(self, key.lower(), val)
결론
'eval'은 속성을 동적으로 설정하는 편리한 방법을 제공하는 것처럼 보이지만 상당한 위험을 초래하므로 피해야 합니다. 'setattr'과 같은 보다 안전하고 효율적인 대안이 있습니다.
위 내용은 Python에서 동적 속성 설정에 `eval()`을 사용하는 것이 위험한 이유는 무엇이며, 더 안전한 대안은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!