2020년 8월 28일 금요일

python 상속

 class Parent():

    def __init__(self):
        print("부모 클래스")

        self.money = 50000000000

class Child_1():
    def __init__(self):
        print("첫번째 자식입니다.")
        print(self.money)

class Child_2():
    def __init__(self):
        print("두번째 자식입니다.")

Child_1()
Child_2()

첫번째 자식입니다.
두번째 자식입니다.



상속 받은 후

class Parent():
    def __init__(self):
        print("부모 클래스")

        self.money = 50000000000

class Child_1(Parent):
    def __init__(self):
        super().__init__()
        print("첫번째 자식입니다.")
        print(self.money)

class Child_2(Parent):
    def __init__(self):
        print("두번째 자식입니다.")

Child_1()
Child_2()

부모 클래스
첫번째 자식입니다.
50000000000
두번째 자식입니다.


잘못된 상속

class Parent():
    def __init__(self):
        print("부모 클래스")

        self.money = 50000000000

class Child_1(Parent):
    def __init__(self):
        super().__init__()
        print("첫번째 자식입니다.")
        print(self.money)

class Child_2(Parent):
    def __init__(self): -------------- Super를 받지않음
        print("두번째 자식입니다.")
        print(self.money)

Child_1()
Child_2()

Traceback (most recent call last):
  File "C:/Users/ejdrm/PycharmProjects/untitled/Test.py", line 45in <module>
    Child_2()
  File "C:/Users/ejdrm/PycharmProjects/untitled/Test.py", line 42in __init__
    print(self.money)
AttributeError'Child_2' object has no attribute 'money'
부모 클래스
첫번째 자식입니다.
50000000000
두번째 자식입니다.




함수는 SUper없이 가져올수있음!!

#상속
class Parent():
    def __init__(self):
        print("부모 클래스")

        self.money = 50000000000
    def book(self):
        print("부모의 서재입니다.")

class Child_1(Parent):
    def __init__(self):
        super().__init__()
        print("첫번째 자식입니다.")
        print(self.money)


class Child_2(Parent):
    def __init__(self):
        print("두번째 자식입니다.")
        self.book() ############가능하다

Child_1()
Child_2()


부모 클래스
첫번째 자식입니다.
50000000000
두번째 자식입니다.
부모의 서재입니다.

댓글 없음:

댓글 쓰기

git rejected error(feat. cherry-pick)

 문제 아무 생각 없이 pull을 받지않고 로컬에서 작업! 커밋, 푸시 진행을 해버렷다. push에선 remote와 다르니 당연히 pull을 진행해라고 하지만 로컬에서 작업한 내용을 백업하지 않고 진행하기에는 부담스럽다(로컬작업 유실 가능성) 해결하려...