Введение
В сердце величественных дворцов династии Мин, усердный еретик приступает к важной миссии по документированию и управлению огромным инвентарем императорских сокровищ. В центре великолепия древних залов и роскошных камер наш protagonista, несущий титул "Хранитель Предметов", должен проявить абсолютную точность и заботу. Используя мощный и универсальный инструмент языка Python, он должен вести тщательный учет.
Ваша цель - помочь нашему верному еретику овладеть концепцией конструкторов в Python - важнейшей для инкапсуляции свойств каждого уникального артефакта и автоматизации процесса с использованием структур на основе классов. В этом погружательном сценарии вы научитесь определять и использовать конструкторы, повышая свои навыки в обработке данных с элегантной эффективностью - занятие, достойное славы императорской дворецкой!
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 и как они могут быть мощными инструментами для инкапсуляции данных и объектно-ориентированного программирования. Теперь вы можете идти дальше и решать еще более сложные задачи программирования с уверенностью хранителя артефактов императорской дворецкой!



