더북(TheBook)

코드를 실행하면 ROE가 큰 순위와 PER이 낮은 순위를 합한 총 순위가 높은 상위 종목 200개가 출력되며, util 패키지 밑에 생성된 엑셀 파일(universe.xlsx)로도 확인할 수 있습니다. 앞서 생성된 universe.xlsx 파일을 열어 둔 상태에서 make_up_universe.py 파일을 재실행시키면 universe.xlsx 파일을 다시 생성하는 과정에서 에러가 발생할 수 있습니다.

make_up_universe.py

(...)
def get_universe():
    (...)
    df = df.loc[:199]
    
    df.to_excel('universe.xlsx')
    return df['종목명'].tolist()

if __name__ == "__main__":
    print('Start!')
    get_universe()
    print('End')

이 코드에서 get_universe 함수의 호출은 if __name__ == "__main__":이라는 if 문에서 이루어집니다. 그 이유를 알아보기 전에 먼저 if 문을 제거했을 때 발생하는 문제를 알아보겠습니다. if 문을 삭제하고 들여쓰기를 없앤 후 get_universe 함수를 호출해도 잘 동작하기는 합니다. 다만 다음과 같은 문제가 생길 수 있습니다. 다른 모듈에서 make_up_universe 모듈을 사용하려고 import make_up_universe를 넣는다면 이 코드가 실행되는 순간 make_up_universe.py 파일이 실행되어 get_universe 함수가 동작합니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.