생성자 메서드 (__init__)
Coddy Python 여정의 Object Oriented Programming 섹션에 포함된 레슨 — 64개 중 7번째.
__init__ 메서드는 새로운 객체를 생성할 때 자동으로 실행되는 특별한 메서드입니다. 이 메서드는 객체의 속성을 초기화합니다.
다음은 생성자가 있는 클래스의 예입니다:
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")를 호출하면, 파이썬은 자동으로 __init__을 호출하고 인수를 전달합니다.
생성자에 의해 설정된 속성에 접근합니다:
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__ 메서드는 모든 객체가 생성될 때 초기 데이터와 함께 적절하게 설정되도록 보장합니다. 이는 객체 생성 후 속성을 수동으로 설정해야 하는 번거로움을 덜어줍니다.
챌린지
쉬움도서 관리 시스템을 구현하기 위해 Python 파일(book.py 및 driver.py)이 제공됩니다. 이 챌린지에서는 한 파일에서 Book 클래스를 정의하고, 이를 다른 파일에서 가져와 사용하는 방법을 배웁니다.
수행해야 할 작업은 다음과 같습니다:
book.py파일의Book클래스에title,author,pages속성을 초기화하는__init__메서드를 완성하세요.driver.py파일은Book클래스를 임포트하여"Harry Potter" by "J.K. Rowling" with 400 pages에 대한 도서 객체를 생성하는 데 사용됩니다.
book.py 파일에 있는 상세한 TODO 주석을 따르세요.
치트 시트
__init__ 메서드는 새로운 객체를 생성할 때 속성을 초기화하기 위해 자동으로 실행되는 생성자입니다:
class Dog:
def __init__(self, name, breed):
self.name = name
self.breed = breed인수를 사용하여 클래스를 호출함으로써 객체를 생성합니다:
rex = Dog("Rex", "German Shepherd")
print(rex.name) # Rex
print(rex.breed) # German Shepherd생성자는 기본 매개변수 값을 가질 수 있습니다:
class Cat:
def __init__(self, name, age=1):
self.name = name
self.age = age
fluffy = Cat("Fluffy", 3)
whiskers = Cat("Whiskers") # age의 기본값은 1입니다직접 해보기
# TODO: book.py에서 Book 클래스를 가져오세요
# 이 형식을 사용하세요: from book import Book
# TODO: 다음 값을 사용하여 'my_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")이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.