1. 들어가며
파이썬에서 함수, 메소드, 클래스, 인스턴스는 무엇이며 어떤 역할을 하는가?
코딩에 재미를 느끼는 요즘 부쩍 궁금해지는 고민이다.
- 함수 : 특정기능의 실현을 위해 정의해 놓은 경우를 말함(def로 시작)
- 메소드 : 클래스 안에 함수가 정의된 경우를 말함(def로 시작)
- 클래스 : 함수(메소드)들의 모음
- 인스턴스 : 클래스를 특정변수에 담는 경우를 말함
2. 함수 예시
아래 <그림1>에서, ①~③번의 클래스, 함수, 메소드, 인스턴스의 예시이다.
①번의 aaa함수가 정의 → 결과값은 3
②번의 ccc클래스 내 ddd메소드가 정의됨 → 결과값은 7
* ②번처럼 클래스를 선언하고 실행하기 위해 "ccc.ddd()"로 실행하기에는
클래스 선언하는 것이 아깝다. (① 혹은 ③번처럼 실행하는 것이 효율적)
③번의 fff클래스 내 ggg메소드가 정의됨 → 결과값은 11
함수, 메소드, 클래스, 인스턴스는 왜 필요할까?
주식 시스템을 만들면서, 반복되는 기능에 대해 지속적으로 사용해 주기 위해서이다.
→ 즉, "함수, 클래스 등"은 향후 1번 이상 활용하겠다는 뜻이다.
함수와 메소드를 굳이 다르게 설명할 이유는 없어보인다.(클래스 내에 있는지 여부)
인스턴스(③의 i=fff())는 클래스 자체를 클래스 밖에서 활용하되,
클래스가 지나치게 길 때, 간략하게 사용하기 위해 사용한다.
def aaa():
b = 1 + 2
print(b)
aaa()
class ccc():
def ddd():
e = 3 + 4
print(e)
ccc.ddd()
class fff():
def ggg(self):
h = 5 + 6
print(h)
if __name__ == "__main__":
i = fff()
i.ggg()
3. 주식 자동매매 활용 방법
함수, 메소드, 클래스, 인스턴스라는 복잡한 개념을 이해하는 것보다 중요한 것은
함수/클래스 등을 자동매매에 적용할 수 있는지의 문제이다.
우리가 관심있는 것은,
자동매매에서 함수/클래스를 어떻게 활용할 것이냐는 것이다.
(예시) 60초마다 2종목의 1분봉을 받는다고 생각해보자.
- 구현해야될 함수는 키움OpenAPI 접속/로그인
- 60초마다 1분봉 조회 함수
- 받은 1분봉을 엑셀, CSV 혹은 MySQL 등 데이터베이스에 저장 함수 등 구현 필요
- 1번 종목 받고, 2번 종목으로 바꾸어서(for) 1분봉 받는 함수
※ 위의 예시는 a종목을 받기 위해 3개 함수(로그인, 1분봉 조회, 엑셀 등 저장) 실행된 후,
b종목의 3개 함수(로그인, 1분봉 조회, 엑셀 등 저장)을 for문으로 돌려주면 될 것이다.
4. 마치며
앞으로 함수가 정의되면, 뒤쪽에서 활용해 준다고 생각해주면 될 것 같다.
함수가 어디에서 어떻게 실행되는지 확인해 보는 것도 좋은 습관이 될 것이다.
'2. 해외선물 > 2-6. 기타자료 (파이썬 함수 등)' 카테고리의 다른 글
(파이썬) 문자열의 내용 및 속성을 추출하는 ast 모듈 (0) | 2024.01.31 |
---|---|
(키움증권 해외선물) OpenAPI-W 시세 사용료 인상(2024년 1월~) (1) | 2024.01.28 |
(파이썬) 엑셀 내용을 파이썬에서 출력하기 (5) 엑셀 데이터를 진입 알고리즘 코드 만들기 (0) | 2023.11.17 |
(파이썬) 엑셀 내용을 파이썬에서 출력하기 (4) openpyxl을 통해 특정열의 갯수 카운팅 및 빈칸 없애기 (4) | 2023.11.16 |
(파이썬) 엑셀 내용을 파이썬에서 출력하기 (3) openpyxl 을 통해 엑셀의 데이터값 가져오기 (R1C1 셀주소) (2) | 2023.11.15 |
(파이썬) 엑셀 내용을 파이썬에서 출력하기 (2) openpyxl 을 통해 엑셀의 데이터값 가져오기 (A1 셀주소) (2) | 2023.11.14 |
(파이썬) 엑셀 내용을 파이썬에서 출력하기 (1) openpyxl 활용 필요성 (3) | 2023.11.13 |
(파이썬) 최고값 및 최저값, 두번째 큰값 및 두번째 작은값 찾기 (0) | 2023.08.15 |