생성자 메서드 (__init__)
Coddy Python 여정의 객체 지향 프로그래밍 섹션에 포함된 레슨. 64개 중 7번째.
__init__ 메서드는 새 object를 만들 때 자동으로 실행되는 특별한 메서드입니다. object의 attributes를 초기화합니다.
다음은 생성자가 있는 클래스의 예시입니다:
class Dog:
def __init__(self, name, breed):
self.name = name
self.breed = breed__init__ 메서드는 매개변수를 받아 self를 사용하여 인스턴스 속성에 할당합니다.
생성자를 사용하여 객체를 만드세요:
rex = Dog("Rex", "German Shepherd")
buddy = Dog("Buddy", "Golden Retriever")Dog("Rex", "German Shepherd")을 호출하면 Python은 자동으로 __init__을 호출하고 인수를 전달합니다.
생성자가 설정한 attributes에 액세스하세요:
print(rex.name)
print(rex.breed)
print(buddy.name)
print(buddy.breed)출력:
Rex
German Shepherd
Buddy
Golden Retriever기본값이 있는 생성자를 사용할 수도 있습니다:
class Cat:
def __init__(self, name, age=1):
self.name = name
self.age = age
# 고양이들 생성
fluffy = Cat("Fluffy", 3)
whiskers = Cat("Whiskers") # age는 기본값이 1
print(f"{fluffy.name} is {fluffy.age} years old")
print(f"{whiskers.name} is {whiskers.age} years old")출력:
Fluffy is 3 years old
Whiskers is 1 years old핵심 요점: __init__ 메서드는 모든 객체가 생성될 때 초기 데이터로 제대로 설정되도록 합니다. 객체 생성 후 attributes를 수동으로 설정해야 하는 수고를 덜어 줍니다.
챌린지
쉬움book.py와 driver.py라는 Python 파일이 주어지며, 이를 사용해 도서 관리 시스템을 구현합니다. 이 과제에서는 한 파일에 Book 클래스를 정의하고, 다른 파일에서 이를 가져와 사용합니다.
여러분의 과제는 다음과 같습니다:
title,author,pagesattributes를 초기화하는__init__method를 사용하여book.py의Book클래스를 완성하세요.driver.py파일은 여러분의Book클래스를 import하고 사용하여"Harry Potter" by "J.K. Rowling" with 400 pages인 book object를 생성합니다.
book.py의 자세한 TODO 주석을 따르세요.
직접 해보기
# TODO: book.py에서 Book 클래스를 임포트하세요
# 이 형식을 사용하세요: from book import Book
# TODO: 다음 값으로 'my_book'이라는 이름의 book 객체를 생성하세요:
# - title: "Harry Potter"
# - author: "J.K. Rowling"
# - pages: 400
# 예제: my_book = Book("Title", "Author", pages)
# 책 세부 정보 출력
# TODO: 이 줄이 실행되기 전에 my_book이 올바르게 정의되었는지 확인하세요
print(f"'{my_book.title}' by {my_book.author}, {my_book.pages} pages")이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
객체 지향 프로그래밍의 모든 레슨
직접 연습해 보세요: 온라인 Python 컴파일러