[Python] eval 내장함수

Jk Lim·2023년 5월 26일
0
post-thumbnail

eval 내장함수

  • 문자열 입력을 함수로 실행가능하게 하는 Python 내장 함수
  • for문 + 포맷문자열과 같이 사용하면 여러 변수, 객체 생성에 효과적이다.

예시

class StockClass:
    def __init__(self, name, code, per, pbr, profit):
        self.name = name
        self.code = code
        self.per = float(per)
        self.pbr = float(pbr)
        self.profit = float(profit)
    def get_all_data(self):
        return [self.name, self.code, self.per, self.pbr, self.profit]
obj1 = StockClass('삼성전자', '005930', 15.79, 1.33, 2.83)
obj2 = StockClass('현대차', '005380', 8.70, 0.35, 4.27)
obj3 = StockClass('LG전자', '066570', 317.34, 0.69, 1.37)
  • 각각의 객체에서 get_all_data메소드를 불러와 하나의 리스트에 취합하고자 한다.
total_list = []
total_list.append(obj1.get_all_data())
total_list.append(obj2.get_all_data())
total_list.append(obj3.get_all_data())
  • eval + for문 + 포맷문자열을 활용하면...
total_list = []
for i in range(1,4):
    total_list.append(eval('obj{}.get_all_data()'.format(i)))
  • 결론 : 순차적으로 늘어나는 숫자가 포함된 변수들을 다룰 때 사용하면 좋을 것 같다.

0개의 댓글