728x90
반응형

클래스 5

Python 추상클래스(abstract class)

추상클래스 (abstract class) - 추상 메소드를 가지고 있는 클래스 : ABC 클래스를 상속 받아야 된다. - abstract method : 선언부만 있고 body가 없는 메소드 - @abstractmethod를 선언해야한다. - 일반 클래스에는 추상메소드가 존재해서는 안된다, 하지만 추상클래스는 일반메소드, 추상메소드 존재해도 된다. 추상클래스는 최소한의 메소드를 작성해야할때 추상메소드를 사용하여 내용이존재하지않는 메소드를 생성한다. (샘플) 그래서 자식클래스가 메소드의 body부분을 작성해야한다.(오버라이드) 보통 회사에서 최소한의 기능을 추가하기위해 팀원들에게 내용이 존재하지않는 추상메소드를 생성하고, 팀원들에게 자식클래스로 상속하여 추상메소드의 기능을 추가하라고 지시한다. from a..

Python/클래스 2023.09.25

Python 클래스 변수, 인스턴스 변수

클래스 변수 : 클래스 내부에 선언된 변수이다. 인스턴스 변수 : 인스턴스 내부의 self가 붙은 변수를 인스턴스 변수라고한다. 클래스 변수를 접근할때는 클래스 이름.변수명 을 사용할 수도 있고, 객체명.변수명 을 통해 접근 가능하다. 클래스 변수는 객체 별로 따로따로 생성되지 않는다.그래서 공유 변수 또는 스태틱변수 라고한다. class Test: num_class = 0 # 클래스변수(메모리에 올라간다) def __init__(self): self.num_instance =0 # 인스턴스 변수(메모리에 안올라간다) self.num_instance +=1 Test.num_class += 1 t1 = Test() print(t1.num_class) t2= Test() print(t2.num_class) ..

Python/클래스 2023.09.25

Python 클래스 상속, 오버라이딩

클래스 상속 (inheritance) 상속은 객체 간의 관계를 구현하는 방법중 하나이다. 간단하게 생각하면은 확장이라고 생각하면된다. 기본적인 기능을 가진 상위 클래스가 존재하고 그 클래스의 하위 클래스가 존재한다고 가정할때, 클래스 상속을 이용하여 상위클래스의 기능을 하위 클래스도 사용가능하다는 것이 상속이다. 상속을 통해 상위 클래스의 맴버를 여러 하위 클래스가 재사용할 수 있어 소스의 재활용에 효과적이고 분업화가 가능하며, 프로그램 유지보수가 간편해져 개발 비용을 절감할 수 있다. class Animal: # 상위 클래스 def sound(self): print('소리를 냅니다') class Dog(Animal): # 하위 클래스 pass dog = Dog() # Dog클래스의 인스턴스 생성 dog..

Python/클래스 2023.09.22

Python 생성자, 소멸자, self

self 파이썬은 생성자와 모든 메소드에 반드시 첫 번쨰로 적는 self가 있다. 메소드를 호출할 때는 반드시 객체변수를 인수로 self 매개변수에 전달해야 한다. 그래야 해당 메소드가 클래스 타입의 객체변 고유 메소드로 인식되기 때문이다. 생성자 : __init__(self) - 생성자는 클래스의 맴버변수들을 초기화한다. - 객체를 생성할 때 자동으로 호출되는 함수 class Person: def __init__(self,name,age,addr): # 생성자 self.name = name self.age = age self.addr = addr person = Person('홍길동',21,'서울') # 객체를 생성하면서 생성자를 호출하고, 데이터를 전달한다. print(person.name) prin..

Python/클래스 2023.09.21

Python 클래스, 객체, 인스턴스

클래스(Class) 클래스란 미래에 만들어질 어떤 특정한 객체들에 대해 일반적으로 적용할 수 있는 변수와 메소드를 정의하고 있는 소프트웨어적인 설계도라고 할 수 있다. 클래스에는 속성 과 기능 부분이 있다. 속성은 변수이고 기능은 메소드(함수) 이다. 클래스 형식 class 클래스명(상속 클래스명): 맴버변수 = 값 --> 클래스 변수 def __init__(self): --> 생성자 ... def 메소드명(self): --> 메소드 ... 메소드의 self는 현재의 객체를 가리키는 변수이다. 인스턴스(instance) 클래스가 설계도라면 설계도대로 실체화를 시켜야한다. 클래스가 실체화되도록 메모리에 할당하는것이 인스턴스이다. 객체(Object) 클래스가 설계도라면 클래스의 설계도대로 만들어진 실체화를 ..

Python/클래스 2023.09.21
728x90
반응형