파이썬(Python) - 클래스(Class),
self, def, 생성자, 상속, 오버라이딩, 모듈
오후 2:11 2018-05-22
[파이썬(Python) 클래스(Class)]
class 클래스이름:
구현
클래스 내부에는 def로 매서드를 구현할 수 있다.
[type함수]
내장함수로 객체의 타입을 출력한다.
[self]
def add(self,a,b)
구현
이런식으로 하게되면 add(1,2) 이렇게 호출이 가능한데 이때 self 덕분에 함수호출시 self에 자동으로 호출한 객체가 전달된다.
(매서드의 첫번째 인자는 항상 self가 와야한다.)
그래서 클래스이름.매서드이름(객체,1,2) 이런식으로도 호출이 가능하다. 하지만 위처럼 객체로 호출시에는 반드시 첫인자는 생략한다.
[객체변수(멤버변수) 생성]
def set(self,a)
self.a=a
위와 같은 매서드를 통해 객체변수 a가 생성된다.
객체변수는 객체간에 서로 공유되지 않음.
파이썬의 클래스는 그닥 어렵지 않은 듯 하다.
[파이썬 클래스 생성자(Constructor)]
객체 생성시 자동호출되는 생성자는 아래와 같이 생성한다.
def __init__(slef,XX,...):
self.XX=XX
물론 기본값 설정도 가능하다. XX=5 이런식으로 말이다.
[클래스를 상속(inheritance)해보자]
class 클래스이름(상속할 클래스이름):
이런식으로 클래스를 상속할 수 있다. 상속시 기존 기능을 유지한채 새기능을 추가할 수 있게된다.
[매서드 오버라이딩 하는방법]
부모클래스를 상속한 새로운 클래스에서 부모가 가진 매서드의 이름을 동일하게 사용해서 다시 작성해주게되면 매서드 오버라이딩(Overriding)이 가능하다. 영어그대로 덮어쓴다고 생각하면된다.
[연습문제까지 완료]
cal=Calculator([3,6,1,5])
print(cal.sum())
print(cal.avg()) 이런식으로 했을 때 합과 평균을 리턴해주는 클래스를 작성하시오.
오후 3:25 2018-05-22
[모듈]
함수,변수,클래스 들을 모아놓은 파일이라고 생각하면된다.
[모듈 만들어보고 갖다써보기]
우선 def sum()함수 하나만있는 파일을 저장(md1.py)한다.(이것도 모듈이다.)
저장한 디렉터리까지 이동한 다음에 인터프리터(python)을 호출한다. 그 후 import md1 을 해준뒤 사용할 수 있다.
[import]
임포트로는 현재 디렉에있는 파일, 모듈만 불러올 수 있음.
import 모듈네임
from 모듈이름 import 모듈함수1,모듈함수2... 이런식으로 입력하면 함수이름으로 바로 함수를 사용할 수 있다.
from 모듈이름 import * 이런식으로 쓰게되면 모든함수를 쓰겠다는 뜻이다.
[모듈 안에서]
if __name__ == "__main__":
수행할 구문1
이런식으로 사용하게되면 import해서 외부에서 사용할 때는 수행할 구문이 수행되지 않는다.
__name__은 파이썬 내부의 특수변수로.. 예를 들어서 해당모듈을 직접열어서 사용할시엔 __main__이 할당된다.
그러나 다른 쉘에서 사용할 경우(import해서 쓸 경우)에는 모듈이름이 할당되게 된다.
[class,변수 등을 모듈에 포함시킬 수 있다.]
예를 들어 파이값을 포함시킬 수 있고, 수학클래스 등을 포함시킬 수 있는 것이다.
[sys 이용하기]
모듈이 있는 디렉토리에 가지 않고도 sys를 이용하면 사용이 가능하다. sys.path.append("경로")를 통해서 해당 경로를 추가해주면된다.
[set을 이용한 환경변수 이용하기]
>set PYTHONPATH=경로
를 입력해서 바로 모듈을 불러와사용이 가능하다.
'Python' 카테고리의 다른 글
파이썬(Python) - 내장함수,외장함수 사용법 모음 (+공부후기) (1) | 2018.05.25 |
---|---|
파이썬(Python) - 패키지(package), 예외처리(try, catch), 예외생성 등 (0) | 2018.05.25 |
파이썬(Python) - 파일입출력(File IO), with, sys, strip, read, write (0) | 2018.05.24 |
파이썬(Python) - 람다(lambda) 및 for, range, kwargs 요약 (1) | 2018.05.22 |
파이썬(Python) - set, elif, while 요약 (0) | 2018.05.22 |