320x100
기본적으로 class는 각 메서드를 정의할때 return 을 사용하는게 올바르며
이유는 자세히 모르겠지만 문자출력은 __str__을 통해서 해야하고
정수 출력은 __len__로 해야하는 것 같다.
# durdle 이라는 특수 메서드
# durdle이라는 뜻은 메서드 콜 양쪽에 밑줄이 더블로 들어가는 __init__같은거라고 보면 되는것 같다.
# 무엇이 도움이 되고, 무엇이 도움이 안되는지 확인하는 용도로 class를 정의한다고 한다.
class Book():
def __init__(self, title, author, pages):
self.title = title
self.author = author
self.pages = pages
# 무언가 해당 class를 통해서 글씨로 출력하고 싶은것이 있을때 정의 해준다고한다.
# print와 같은 내장함수다.
def __str__(self):
# print를 사용하면 안된다고 한다.
return f'{self.title} written by {self.author}'
# 무언가 해당 class를 통해서 정수로 출력하고 싶은것이 있을때 정의 해준다고한다.
def __len__(self):
# f_string으로 출력하려고 보니깐 어쨌든 f_string도 문자라서 에러가 뜬다;
return self.pages
'''
mybook = Book('Python Rocks', 'Jose', 120)
print(mybook)
# <__main__.Book object at 0x7f99700080d0>
'''
mybook = Book('Python Rocks', 'Jose', 120)
print(mybook)
# Python Rocks written by Jose
print(len(mybook))
# 120
300x250
'개발일지 > Python' 카테고리의 다른 글
*매우매우중요 Python class5 - 파이썬 파일 import (0) | 2022.09.28 |
---|---|
*매우중요 Python 문제풀이 13 - class 상속 (0) | 2022.09.28 |
*매우매우중요 Python 문제풀이12 - class 상속 (0) | 2022.09.28 |
Python class3 - 상속 (0) | 2022.09.28 |
Python 문제11 - class 메서드 정의 후 호출 (0) | 2022.09.28 |