728x90 반응형 객체5 [Python] 5. 상속과 다형성 상속 : 부모 클래스의 모든 멤버(함수 혹은 변수)를 자식 클래스에게 물려줄 수 있는 것 - 자식 클래스는 물려받은 멤버 이외에 추가 기능 구현! 다형성(override) : 상속 받은 메소드의 내용을 재정의하기 - 부모 클래스와 같은 메소드지만 자식 클래스에서 내용을 변경하는 것 class Person: def __init__(self, name, phoneNumber): self.name = name self.phoneNumber = phoneNumber def printInfo(self): print("Name : {0}, Phone Number : {1}".format(self.name, self.phoneNumber) class Student(Person): # Person : 부모 클래스, S.. 2021. 10. 26. [Python] 4. private 멤버 private 멤버변수 : 클래스 내부의 멤버 변수 중 숨기고 싶은 변수 private 멤버변수의 특징 - 클래스의 내부 변수는 일반적으로 public 속성을 갖기 때문에 외부에서 마음대로 접근하거나 변경 가능 - 하지만, private 멤버 변수는 그렇지 않음 cf. '외부'란 main 함수 혹은 객체를 통한 접근 등을 통틀어 일컫는 말 식별자(예약어) : 키워드는 아니지만, private 멤버 변수로 사용하기 위해, 미리 정해진 용도로만 사용하는 문자 식별자 정의 예시 _* 모듈(파일) 안에서 _로 시작하는 식별자를 정의하면 다른 파일에서 접근 불가 _age __*__ 식별자의 앞뒤에 __가 붙어 있는 식별자는 시스템에서 정의한 이름 __name__ __* 클래스 안에서 외부로 노출되지 않는 식별자로.. 2021. 10. 26. [Python] 3. 정적 메소드 정적 메소드(= static method) - 클래스에서 직접 호출할 수 있는 메소드 - 즉, 인스턴스(객체)를 생성하지 않고 클래스 이름을 이용하여 호출할 수 있는 메소드 - 메소드를 정의할 때 인스턴스 객체를 참조하는 self라는 인자를 선언하지 않음 아래 코드와 설명을 보며, 좀 더 확실하게 이해해 보자!! class MyOperatorStatic(): @staticmethod def my_addStatic(x, y): return x+y class MyOperator(): def my_add(self, x, y): return x + y if __name__ == '__main__': print(MyOperatorStatic.my_addStatic(1,6)) myOperator = MyOperat.. 2021. 10. 13. [Python] 2. 생성자 메소드와 소멸자 메소드 생성자 메소드 - 객체를 생성할 때, 자동으로 호출되어 실행되는 메소드 - 객체가 생성될 때, 가장 먼저 호출되는 메소드 - 일반적으로, 생성자 메소드에 멤버변수를 초기화 하는 코드를 작성한다. 소멸자 메소드 - 생성 되었던 객체의 소멸될 때 자동으로 호출되어 실행되는 메소드 - 객체의 레퍼런스 카운트가 0이 될 때 자동으로 호출 - 클래스가 소멸되기 전에 수행되어야 할 코드를 작성한다. 아래의 예제 코드 참고! class MyCass: def __init__(self, value): self.Value = value print("Class is created. Value = ", value) def __del__(self): print("Class is deleted.") if __name__ == '.. 2021. 10. 6. [Python] 1. 클래스와 인스턴스 클래스 - 개발자에게 필요한 새로운 형식을 정의하는 것을 의미 - 데이터를 변형하는 함수와 속성을 같은 이름 공간에 묶음 - 메모리 공간 차지 X 인스턴스 - 클래스를 복사해서 생성한 복사본 - 메모리 공간 차지 O 클래스와 인스턴스의 관계 - 붕어빵틀(클래스)과 붕어빵(인스턴스)의 관계와 같음 - 붕어빵틀이 있다고 해서 붕어빵이 있는 건가? X - 붕어빵틀은 붕어빵을 만들기 위한 틀일 뿐! 붕어빵이 있는 것은 아니다. - 이걸 프로그래밍 관측에서 보면, - 붕어빵틀(클래스)은 그냥 틀일 뿐, 메모리에 존재하는 게 아니다. - 붕어빵(인스턴스)을 만들어야 메모리에 존재하는 것이다. cf. 인스턴스와 객체는 같은 뜻이며, 둘 중 어느 단어를 사용하든 상관 없다. 객체 지향 프로그래밍의 특징 1. 추상성 :.. 2021. 10. 5. 이전 1 다음 728x90 반응형