파이썬

PyTrader 구현 3-2일차

소프트 디퓨저 2020. 10. 28. 22:58

 

Debug Mode

PyCharm Community Edition 으로 code 를 작성하여 UI를 띄우고 값을 가져와야 하는데

값을 가져 오지 못하고 UI가 먹통이 되고 잠시 후 종료가 된다.

딱히 어떤 에러 메시지가 나오지도 않아서 고민을 하다가

code 를 Run 으로 실행하지 않고 Debug로 실행하니 어떤 line에서 왜 에러가 나오는지 나와서 해결 했다.

 

왜 Run과 Debug를 구분해서 만들었는지 모르겠지만 어쨌거나 해결!!

 

 

# Error 1

총 수익률과 추정 자산이 바껴서 출력되는데

아래 코드 처럼 딕셔너리에 .append 하는 순서에 따라서 출력 순서도 저장됨

출력하려는 순서에 맞춰서 더해줘야 함

파란줄과 빨간줄을 바꿔서 code 작성하니 원하던대로 결과값이 나옴

 

self.opw00018_output['single'].append(self.change_format(total_purchase_price))
self.opw00018_output['single'].append(self.change_format(total_eval_price))
self.opw00018_output['single'].append(self.change_format(total_eval_profit_loss_price))
self.opw00018_output['single'].append(self.change_format(estimated_deposit))
self.opw00018_output['single'].append(total_earning_rate)

 

# Error 2

class 안에서 선언된 method 중 자기 자신의 method를 사용할 때는 self 를 사용해야 하는데 kiwoom_obj 라는 다른 object 를 사용해서 Error가 발생되었음.

 

맞는 예 : self.opw00018_output['single'].append(self.change_format(total_purchase_price))

틀린 예 : self.opw00018_output['single'].append(kiwoom_obj.change_format(total_purchase_price))

 

 

★ class 안에서 선언된 method 중 자기 자신의 method를 사용할 때는 self 를 사용

 

다른 class의 method를 사용할 때는 self.선언된_object.method_name 형식으로 사용

 

예)

다른 클래스를 내 객체로 선언 : self.kiwoom_obj = Kiwoom_class()
상속받은 method를 내가 선언한 객체를 이용해서 사용 : self.kiwoom_obj.comm_connect()