나는 정말 필요하지 않는 한 exec
과 eval
을 사용하지 말아야한다는 것을 읽었습니다. 그래서 다음과 같은 경우가 유효한지 궁금 해서요. 만약 그렇지 않다면, 대신 무엇을 사용할 수 있을까요? ?exec의 사용에 관해서는
Npc
클래스의 메소드에서 변수를 Place
클래스의 인스턴스에서 변경해야합니다. 이처럼 :
Npc.move(self,destination)
에서 :
exec "%s.matrix[self.position[0]][self.position[1]] = False" % (self.place)
경우 self.place
NPC가 "입니다"는 Place
instace의 이름입니다. 예를 들어, 실행될 때 줄 수있는 :
bedroom.matrix[0][0] = False
입니다 : (False
로 위치를 설정) 그렇게하기 위해 Place
클래스의 메소드를 만듭니다. 그러나 그렇게하는 것이 정말 낫습니까? 그렇게하면 한 번만 사용되는 한 줄짜리 함수가 생깁니다.
exec
을 사용 :
def save(self):
"""
Saves the object instance to the database.
"""
exec "sql.routines.%s.add(self)" % (self.__type__)
__type__
는 Place
, Npc
할 수있다, 등등 ... 나는 if
's의 무리를 사용할 수 알지만, 어디 .. 그렇게하는 것이 정말 낫습니까? 나는 여기서 "위험"을 볼 수없는 것 같아.