Конструкторы Python для Императорских Артефактов

PythonPythonBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В сердце величественных дворцов династии Мин, усердный еретик приступает к важной миссии по документированию и управлению огромным инвентарем императорских сокровищ. В центре великолепия древних залов и роскошных камер наш protagonista, несущий титул "Хранитель Предметов", должен проявить абсолютную точность и заботу. Используя мощный и универсальный инструмент языка Python, он должен вести тщательный учет.

Ваша цель - помочь нашему верному еретику овладеть концепцией конструкторов в Python - важнейшей для инкапсуляции свойств каждого уникального артефакта и автоматизации процесса с использованием структур на основе классов. В этом погружательном сценарии вы научитесь определять и использовать конструкторы, повышая свои навыки в обработке данных с элегантной эффективностью - занятие, достойное славы императорской дворецкой!


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/ObjectOrientedProgrammingGroup(["Object-Oriented Programming"]) python/ObjectOrientedProgrammingGroup -.-> python/constructor("Constructor") subgraph Lab Skills python/constructor -.-> lab-271534{{"Конструкторы Python для Императорских Артефактов"}} end

Python-класс с конструктором

На этом этапе вы создадите Python-класс, представляющий артефакт из коллекции дворца. Вы определите конструктор для инициализации его атрибутов, таких как имя, возраст и происхождение.

Откройте файл Python под названием artifact.py в каталоге ~/project с таким содержанием:

class Artifact:
    def __init__(self, name, age, origin):
        self.name = name
        self.age = age
        self.origin = origin

## Пример использования
if __name__ == "__main__":
    jade_vase = Artifact("Jade Vase", 150, "China")
    print(f"Артефакт: {jade_vase.name}, Возраст: {jade_vase.age}, Происхождение: {jade_vase.origin}")

Класс Artifact имеет метод __init__, который является конструктором в Python. Он автоматически вызывается при создании нового экземпляра класса. Параметр self ссылается на текущий экземпляр класса и используется для доступа к переменным, принадлежащим классу.

Запустите Python-скрипт, выполнив следующую команду в терминале:

python ~/project/artifact.py

Вы должны увидеть вывод:

Артефакт: Jade Vase, Возраст: 150, Происхождение: China

Добавление методов в Artifact

Теперь давайте усовершенствуем класс Artifact, добавив методы, которые позволят еретику отображать и обновлять информацию об артефакте. Вы создадите метод для вывода подробностей об артефакте и другой для обновления его возраста.

Отредактируйте файл artifact.py, чтобы включить новые методы:

class Artifact:
    def __init__(self, name, age, origin):
        self.name = name
        self.age = age
        self.origin = origin

    def display_info(self):
        print(f"Артефакт: {self.name}, Возраст: {self.age}, Происхождение: {self.origin}")

    def update_age(self, new_age):
        if new_age >= 0:
            self.age = new_age
        else:
            print("Некорректный возраст. Пожалуйста, введите положительное число.")

## Пример использования
if __name__ == "__main__":
    jade_vase = Artifact("Jade Vase", 150, "China")
    jade_vase.display_info()
    jade_vase.update_age(160)
    jade_vase.display_info()

Метод display_info выводит подробности об артефакте. Метод update_age позволяет обновить атрибут возраста, обеспечивая, чтобы только допустимые положительные числа были установлены.

Запустите обновленный Python-скрипт, выполнив соответствующую команду в терминале снова, и изучите вывод.

Следующая информация должна быть отображена в вашем терминале:

Артефакт: Jade Vase, Возраст: 150, Происхождение: China
Артефакт: Jade Vase, Возраст: 160, Происхождение: China

Резюме

В этом практическом занятии вы прошли интерактивный тур по величественным дворцам династии Мин, где помогла нашим героям документировать артефакты с использованием конструкторов Python. Основное внимание уделялось пониманию концепции конструкторов в Python и способам управления атрибутами класса с помощью методов.

Начиная от создания класса и его конструктора и заканчивая добавлением функциональных методов, вы приобрели практический опыт. Вы узнали, как создавать объекты, инициализировать их атрибуты и манипулировать данными объектов с использованием методов, определенных классом - это фундаментальные навыки для любого разработчика на Python.

Мы надеемся, что вы поняли основную идею конструкторов Python и как они могут быть мощными инструментами для инкапсуляции данных и объектно-ориентированного программирования. Теперь вы можете идти дальше и решать еще более сложные задачи программирования с уверенностью хранителя артефактов императорской дворецкой!