클래스2

jinkyung·2021년 3월 10일
0

Python

목록 보기
7/19
post-custom-banner

static method : 독립적인 함수들을 이 이름으로 묶어놓고 싶을 때 선언한다.
소멸자 : 객체가 메모리에서 사라질 때 호출된다.


class Academy:
    # 클래스 소속 변수
    name = "비트캠프-"
    stnum = 0

    # 객체를 통해서 호출 메서드
    def __init__(self, name, num):
        print("생성자 호출~")
        # 객체 소속 변수(필드)
        self.name = name
        self.stnum = num
        Academy.stnum += num

    def __del__(self):
        print("소멸자 호출~")

    # 클래스를 통해서 호출 메서드
    @classmethod
    def gettotalstnum(cls):
        return cls.stnum

    # 클래스를 통해 호출 메서드
    # 클래스 멤버변수/객체 필드변수와 무관한 동작(접근못함)
    # 클래스와 연관관계는 있어서 클래스에 선언을 한다
    # 그냥 함수를 독립적으로 선언하기 싫어서 클래스 이름으로 묶어놓을 때
    @staticmethod
    def description(duration):
        print("IT 교육")
        print("기간 : ", duration, "개월")

aca0 = Academy("신촌", 300)
aca1 = Academy("종로", 250)
print("*" * 20)
print(Academy.name + ":" + str(Academy.stnum))
print(Academy.name + aca0.name + ":" + str(aca0.stnum))
print(Academy.name + aca1.name + ":" + str(aca1.stnum))
print("전체 학생 수 : " + str(Academy.gettotalstnum())) # gettotalstnum(Academy)
Academy.description(5.5)
print("*" * 20)

상속

pass: 나중에 설계하겠다.

def add(a, b):
    pass

def sub(a, b):
    pass

class Parent:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def character(self):
        print("smooth")

    def viewinfo(self):
        print("name:", self.name)
        print("age:", self.age)

class Child(Parent):
    pass

c = Child("홍길동", 24)
c.character()
c.viewinfo()

파이썬도 객체지향 프로그래밍이 가능하다.


class Parent:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def character(self):
        print("smooth")

    def viewinfo(self):
        print("name:", self.name)
        print("age:", self.age)

class Child(Parent):
    def __init__(self, name, age, money):
        self.name = name
        self.age = age
        self.money = money

    # 재정의
    def character(self):
        print("smart")

    # 확장
    def viewinfo(self):
        Parent.viewinfo(self)	#super().viewinfo()도 가능하다.
        print("money:", self.money)

    # 신규 추가
    def play(self):
        print("HaHaHa~")

c = Child("홍길동", 24, 3000)
c.character()
c.viewinfo()
c.play()


post-custom-banner

0개의 댓글