Niketh75
Необходимо создать класс
Niketh75
Попытался сам что-то накалякать, но нет понимания, как работать со словарем в классе
Ну из кода видно, что у тебя нет вообще каких-либо знаний основ даже. Ты точно по себе курс взял?
Вот, например,
Niketh75
if (type(mother) and type(father)) == str:
Операция and не работает так. Да и без операции and тип проверяется не так.
Тут вот тоже
Niketh75
def get_parname(self, mother, father):
Этих аргументов не должно быть у метода.
Niketh75
Необходимо создать класс, у которого будет несколько полей, для каждого поля сделать геттер и сеттер с проверками передаваемых данных.Одно из полей сделать словарем и еще одно списком.
Ну не знаю, задание вроде простое. Но ты его вообще даже приблизительно не сделал. Так что рановато ты за классы взялся.
Лучше напиши программу, которая выводит ёлочку на экран в виде текстовых символов. Оно гораздо полезнее будет для тебя. В общем, напиши программу, которая что-то делает. Никто не будет тебя умным считать, если ты слово class будешь писать в питоне. Людям, которые не в теме, тебе просто нечего будет показывать, так как для каких-то видимых результатов слова class недостаточно, так как надо ещё знать и то, зачем и когда его писать. А люди, которые в теме, будут просто пальцем у виска крутить, так как видно, что ты просто слово class пишешь и даже не знаешь, для чего и зачем это делать надо.
С функциями ты работать не умеешь. Базовые операции ты не знаешь. Про классы и объекты ты не подозреваешь даже.
Например, любая строка - это объект класса Стр
оки. Класс Строки охватывает все строки, потому что все строки являются одинаковыми по структуре и поведению объектами. Любой словарь - это объект класса Словари. Класс Словари охватывает все словари, потому что все словари являются одинаковыми по структуре и поведению объектами. Всего этого ты не видишь, потому что не знаешь теории. Например, функция print() - это объект класса Функции. Класс Функции охватывает все функции, потому что все функции являются одинаковыми по структуре и поведению объектами.
Зачем это всё надо видеть и понимать? Да вот это всё к тому, что объектно-ориентированная программа представляет из себя такое множество объектов, взаимодействующих между собой с помощью сообщений, передаваемых от одного объекта другому объекту. В питоне такая передача сообщений между объектами реализована с помощью методов объектов. Так как каждый объект принадлежит какому-то классу таких объектов, метод объекта описывается в классе объектов и таким образом все экземпляры этого класса получают этот метод в одном и том же виде.
Зачем это все надо понимать? Да чтобы при создании собственных классов понимать, как экземпляры этих классов будут получать сообщения и какие реакции на эти сообщения они будут выдавать (выдавать в ответ или выдвавать куда-то дальше).
А у тебя класс Info что описывает? Вот берём один экземпляр этого класса - один объект класса Info. Дальше что? Что мы можем сказать этому объекту? какое сообщение мы можем послать ему? что мы от него ждём? какой ответ или какую реакцию?
Я вот что-то не вижу у тебя этого понимания.
А нужно представить этот объект класса Info и сказать ему: 1) запиши мать себе и запомни её; 2) запиши отца себе и запомни его; 3) запиши город себе и запомни его; 4) вспомни мать и скажи мне её имя; 5) вспомни отца и скажи мне его имя; 6) вспомни город и скажи мне его название.
Кто-то же будет с этим объектом взаимодействовать и посылать ему эти сообщения. Этот объект просто как записная книжка работает. Например, подошёл к нему один объект преподаватель и говорит “запиши себе мать и запомни её”, а потом подходит к нему другой объект директор и говорит “вспомни свою мать и скажи мне её имя”. Таким образом объект преподаватель и объект директор передали информацию через этот объект класса Info. При этом объект класса Info не знает, как зовут директора или сколько там преподавателей работает и кто кому вообще через него данные передаёт. Он просто хранит и выдаёт данные посредством приходящих к нему сообщений и больше ничего не делает и ничего не знает. Они там все такие (разбирающиеся только в своей области ответственности и всё и ни в чём больше), и ты из них из всех строишь разные конструкции, которые называются механизмами.
Потом ты можешь сделать объект секретарь и передать ему объект портфель, в котором лежат объекты класса Info с разными записанными именами внутри них. И объект секретарь может взять этот объект портфель и понести этот объект портфель в другой корпус университета и там отдать другому объекту секретарю. И вот второй объект секретарь может положить все объекты класса Info с одного города в другой объект портфель для того же города. Получается таким образом, что у тебя есть одинаковые секретари, есть одинаковые портфели. И когда они есть одинаковые, ты можешь их собрать в один класс. Так у тебя появляется класс Секретари. Так у тебя появляется класс Портфели. У секретаря есть набор сообщений, которые он распознаёт: 1) возьми портфель; 2) иди в другой корпус университета; 3) отдай портфель. У портфеля есть набор сообщений, которые он распознаёт: 1) сохрани объект пирожок; 2) дай объект пирожок; 3) сохрани объект класса Info; 4) дай объект класса Info. Таким образом у тебя получается система, которая состоит из объектов, которые взаимодействуют друг с другом посредством передаваемых сообщений. Секретарь может брать портфель и переносить его. Секретарь может брать портфель и класть в него что-то. Секретарь может брать портфель и доставать из него что-то. Пирожок он может съесть. Данные объекта класса Info он может переписать в ведомость. При этом объект строка из объекта класса Info копируется в объект строку в объекте класса Ведомости.
Понимаешь, это работает вот так. Для этого классы и создаются. Они не просто для умности какой-то пишутся.
tags: oop