Menu
Coddy logo textTech

생성자 메서드 (__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__ 메서드는 모든 객체가 생성될 때 초기 데이터와 함께 적절하게 설정되도록 보장합니다. 이는 객체 생성 후 속성을 수동으로 설정해야 하는 번거로움을 덜어줍니다.

challenge icon

챌린지

쉬움

도서 관리 시스템을 구현하기 위해 Python 파일(book.pydriver.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")
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

Object Oriented Programming의 모든 레슨