IT/Python 25

예외처리

Try Except try: except : except (예외1, 예외2): except 예외 as 인자: else: finally: Raise 사용자가 강제로 예외를 일으킬 때 사용 내장 예외만으로 한계가 있어, 추가 예외를 정의 def NegativeDivisionError(Exception): def __init__(self, value): self.value = value def positiveDivide(a, b): if b < 0: raise NegativeDivisionError(b) return a/b try: ret = positiveDivide(100, -2) except NegativeDivisionError as e: print('Error: ', e.value) except Ze..

IT/Python 2023.11.05

모듈(Library)

정의 여러 코드를 묶어 다른 곳에서 재사용 할 수 있는 코드의 모음 위치 일반적으로 c:\\python36\\Lib에 위치하며, 사용자 정의 모듈 또한 저장 및 사용 가능 환경 변수 등록 Windows 설정 방법 시스템 속성 > 고급 > 환경변수 > 시스템 변수 > 새로 만들기 변수 이름: PYTHONPATH | 변수 값: 모듈 경로 추가 동적 경로 추가 방법 import sys sys.path # 등록된 경로 확인 sys.path.append("...") # 경로 추가 sys.path.remove("...") # 경로 삭제 from & import from import import testmodule as test1 import testmodule as test2 # 동일 모듈을 다른 별칭(as )로 ..

IT/Python 2023.11.05

멤버 변수를 위한 식별자

식별자(예약어) 정의 예시 _something 다른 파일에서 접근할 수 없음 _name __something__ 시스템에서 정의한 이름 __doc__ __something 클래스 안에서 외부로 노출되지 않는 식별자로 인식(private 멤버 변수) __name private 맴버 변수는 name mangling이 적용 print(instanceName.__privateVal) # 접근 불가. 에러 발생. print(instanceName._className__privateval) # 클래스 외부에서 접근하는 방법

IT/Python 2023.10.30

정적 메소드 사용

인스턴스를 생성하지 않고 메소드를 호출할 수 있나요? 정적 메소드 정적 메소드 또는 static 메소드로 혼용 클래스에서 직접 호출 할 수 있는 메소드 메소드를 정의할 때 인스턴스 객체를 참조하는 self 인자를 선언하지 않음 "Class_name.method_name" 로 호출 가능 클래스 인스턴스에는 적용되지 않는 메소드 class Calc(object): @staticmethod def custom_add(x, y): return x + y a = Calc.custom_add(5, 7) # 인스턴스 객체 생성 없이 호출 print(a) 데코레이터 @staticmethod 메타 데이터를 전달하는 용도

IT/Python 2023.10.30

클래스와 인스턴스

클래스 형식을 정의 속성과 데이터를 변형하는 함수를 같은 namespace 에 묶음 인스턴스 클래스를 복사해서 생성한 복사본 객체지향 프로그래밍의 특징 추상성: 꼭 필요한 부분만 구현 상속성: 부모 클래스에서 공통부분을 상속 받음 다형성 동일한 인터페이스에 대해 구체적인 인스턴스마다 다른 동작을 할 수도 있음 상속받은 메소드의 바디를 덮어쓰기 Overrride 클래스 정의 class 클래스명(상위클래스): """ 클래스에 대한 설명 """ def 함수명(self, 인자1, 인자2, ...): statement ... return 인스턴스 객체 멤버 변수 이름 해석 순서 인스턴스 객체 내부 클래스 객체 내부 전역 공간 클래스에 새로운 멤버 변수 추가 방법 class_name.맴버변수명 = "초기값" 인스턴..

IT/Python 2023.10.30

스코핑 룰 Scoping rule

스코핑 룰 함수는 별도의 이름 공간(namespace)을 가짐 이때 이름을 찾는 방법을 스코핑 룰이라고 함 변수를 사용하기 위해 반드시 알아야 할 규칙 변수 이름 해석 순서 (LGB) 지역 Local: 함수 내부 공간 전역 Global: 함수 외부 공간 내장 Built-in: python 자체에 정의된 공간 기본인자 함수 호출 시, 인자를 지정해주지 않아도 기본값이 할당되는 방법 def func(a=1, b=2): 가변인자 *를 함수 인자 앞에 붙이면 정해지지 않은 수의 인자를 받을 수 있음 def test(*args): 정의되지 않은 인자 **를 붙이면 정의되지 않은 인자를 사전 형식으로 받을 수 있음 def api(server, port, **user): ... api("go.com", "22", i..

IT/Python 2023.10.30