为什么使用'eval'是一种不好的做法?
我正在使用以下课程轻松存储我的歌曲数据。
class Song:
"""The class to store the details of each song"""
attsToStore=('Name', 'Artist', 'Album', 'Genre', 'Location')
def __init__(self):
for att in self.attsToStore:
exec 'self.%s=None'%(att.lower()) in locals()
def setDetail(self, key, val):
if key in self.attsToStore:
exec 'self.%s=val'%(key.lower()) in locals()我觉得这比写出一个if/else块更具扩展性。但是,eval似乎被认为是一种不良做法并且使用起来不安全。如果是这样,任何人都可以向我解释为什么并告诉我一个更好的方法来定义上面的类?
湖上湖
千万里不及你
繁星点点滴滴
RISEBY
慕哥6287543
随时随地看视频慕课网APP
相关分类