관리 메뉴

Storage Gonie

7. Python 클래스 상속 본문

웹개발/Django 웹서비스 개발(인프런)

7. Python 클래스 상속

Storage Gonie 2019. 2. 8. 09:05
반응형

상속은 다음과 같이 이뤄진다.

- class 클래스명(상속받을 부모클래스명)

- __str__함수 또한 상속이 자동적으로 이루어짐

class Text:
def __init__(self, str):
self.text = str

def __str__(self):
return "Text: " + self.text

def getLength(self):
return len(self.text)

class Article(Text): # Text(부모)클래스를 상속받은 자식클래스
def __init__(self, title, text):
self.title = title
self.text = text
'''

이게 존재한다면 두번째 출력이 나오게 된다.
def __str__(self):
return "Article: %s %s" % (self.title, self.text)
'''

class User:
num_users = 0 # class 변수

def __init__(self, name):
self.numArticle = 0 # instance 변수
self.name = name
self.articles = []
User.num_users += 1

def write(self, text):
self.articles.append(text)
self.numArticle += 1

def __str__(self):
return "User: %s %s" % (self.name, [article.text for article in self.articles])

t = Article("hello", "This is some text")
t2 = Text("This is some text2")
user = User('honux')

user.write(t)
user.write(t2)

print(t, t.getLength())
print(user, user.numArticle)

'''
Text: This is some text 17
User: honux ['This is some text', 'This is some text2'] 2

Article: hello This is some text 17
User: honux ['This is some text', 'This is some text2'] 2
'''


반응형
Comments