プログラミングで eval を使用することは、その固有の欠点のため推奨されないことがよくあります。利便性が認識されているにもかかわらず、特にオブジェクトの属性を動的に定義する場合には、より適切で安全な代替手段があります。
eval を使用しない理由:
Eval を使用せずに根本的な問題に対処する:
属性を動的に設定するという根本的な問題は、次の方法に頼ることなく対処できます。評価。 setattr を使用して次の改訂された Song クラスを考えてみましょう:
class Song: attsToStore = ('Name', 'Artist', 'Album', 'Genre', 'Location') def __init__(self): for att in self.attsToStore: setattr(self, att.lower(), None) # Initialize attributes with None def setDetail(self, key, val): if key in self.attsToStore: setattr(self, key.lower(), val) # Set attribute dynamically
結論:
eval は一見使いやすさを提供するかもしれませんが、それに伴うリスクと制限があるため、お勧めできません。ほとんどのシナリオで練習してください。 Setattr または同様のメカニズムは、オブジェクト属性を動的に定義するためのより安全で効率的な代替手段を提供します。
以上が「eval()」の使用がプログラミングにおいて有害な行為とみなされているのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。