|
0 / 0 / 0
Регистрация: 04.10.2021
Сообщений: 1
|
|||||||
TypeError: AddCar() missing 1 required positional argument: 'self'04.10.2021, 12:55. Показов 4173. Ответов 28
Метки нет (Все метки)
выдает ошибку. Условно нужно, чтобы создавать обьект машины.
0
|
|||||||
| 04.10.2021, 12:55 | |
|
Ответы с готовыми решениями:
28
TypeError: describe_battery() missing 1 required positional argument: 'self'
|
| 06.10.2021, 11:42 | ||
|
Кликните здесь для просмотра всего текста
Но у каждого его мышление индивидуально. Видимо когда Вы думаете о машине как об абстрактном объекте, то рассматриваете только то, что машина может делать, и это отождествляете с множеством машин, которые относятся к классу "Машины". Я же когда рассматриваю мысленно множество машин, которые относятся к классу "Машины", то мысленно просматриваю не только те действия, которые может совершать машина, но и те действия, которые совершают с машиной. Поэтому действия, которые совершают с машиной, я тоже отношу к классу машин и моделирую их в классе с помощью статических методов. Хотя для этого годятся и методы класса. Просто я их подзабыл и пока использую только статические методы.
Только не нужно утверждать, что все должны мыслить одинаково, и что те, кто думает по другому чем Вы, они глупые. А раз все думают по разному, то и модели их мышления будут разные. У Вас процесс мышления использует дополнительный класс. Я же в своем мышлении все, что относится к абстрактному понятию машины мысленно объединяю в одно целое, в один класс. Я считаю что и Ваше мышление и мое мышление нельзя называть глупым, так как и то и другое приводят к верному результату, хотя и разными путями. В моем понимании глупым можно называть только такое мышление, которое приводит к ошибочному результату.
0
|
||
|
5239 / 3483 / 1176
Регистрация: 21.03.2016
Сообщений: 8,314
|
|
| 06.10.2021, 18:14 | |
|
0
|
|
| 06.10.2021, 20:21 | |
|
Кликните здесь для просмотра всего текста
MixailMokhov, Я еще раз все обдумал, и пришел к выводу, что я был не прав, когда предложил использовать в классе статический метод, добавляя машины в список. Это нарушает основной принцип класса, в котором должны описываться свойства и действия (методы), которые присущи любому объекту, являющемуся экземпляром этого класса. Но добавление машины в список не является действием присущим любой машине. Однако заправка машины топливом, углеводородным или с использованием электроэнергии, является действием над машиной, присущим любой машине (то есть присуще любому экземпляру класса "Машина"). Без заправки топливом любая машина не поедет.
И вот такой метод"заправка_машины" было бы оправдано описать внутри класса "Машина".То есть рассматривая действия над экземпляром класса, нужно четко понимать, присуще ли эти действия для всех экземпляров этого класса или нет. И тогда решать о возможности описания этих действий внутри класса в виде статического метода или метода класса. Атрибуты присущие только отдельным экземплярам класса, нужно присваивать конкретным экземплярам класса за пределами класса.
0
|
|
| 07.10.2021, 19:30 | ||||||
|
Welemir1, Данная дискуссия пошла мне на пользу. Я вспомнил, что Лутц (да и в документации разработчиков не встречал другого) говорит о том, что запись
"экземпляр_класса.метод(self, ...)" делает только одно, вызывает метод и передает в него экземпляр класса в качестве аргумента. При этом содержание тела метода может быть таким, что бы интерпретировать , что объект_экземпляр что то делает, или что с этим объектом_экземпляром что то делают. И является ошибкой, всегда интерпретировать, что такая запись говорит о том, что экземпляр что то делает. Повторю, такая запись говорит только о том, что экземпляр передается в метод в качестве аргумента, и не более того. Интерпретировать можно только исходя из того, что с этим аргументом_экземпляром происходит внутри метода. Каюсь, я тоже не верно интерпретировал запись "экземпляр_класса.метод(self, ...)". Теперь, благодаря этой дискуссии я прозрел. ![]() Метод add_car(self, ...) можно интерпретировать только исходя из описания метода, анализируя, что он делает. Поэтому моя идея для действий с экземпляром с помощью статического метода, излишняя. Нужно просто грамотно описывать метод, в теле которого должны осуществляться действия с экземпляром, а не действия осуществляемые самим экземпляром. В чем ошибка ТС и Onet1me, это то , что они не понимают механизма, как работает питон, и при вызове метода не передают ему экземпляр класса, который требуется параметром self в списке параметров метода. А сам метод у них, не создает новый экземпляр класса а меняет значение параметров у экземпляра класса, который должен передаваться этому методу, но у них не передается. Добавлено через 20 минут P.S. Интерпретировать запись
Если бы ТС написал за пределами класса такой код, то метод бы получил в качестве аргументов машину x и поменял бы ее параметры (значения атрибутов). Капитально переделал бы автомобиль, изменив его под другую марку автомобиля, что можно сделать только мысленно но не в реальности. ![]() Если же ТС хотел методом создать новый экземпляр класса, то метод во-первых должен был бы быть статическим, а во-вторых создавать новый экземпляр класса. И тогда вызываться так как у него Car.add_car() И третий вариант, если бы ТС хотел бы уничтожить старый автомобиль и приобрести новый, то он был бы должен передать в метод экземпляр старого автомобиля x.add_car(self, ...) и внутри метода удалять этот экземпляр класса и создавать новый.
1
|
||||||
| 07.10.2021, 19:37 | |
|
Не по теме: Viktorrus, согласен с вами, все верно, рад что смог помочь, мне всегда нравилось ваше желание глубоко копать в доку и в книгу для того, чтобы разобраться и прийти к какому то решению. К сожалению, нашим юным форумчанам порой вот этого не достает.
0
|
|
|
3582 / 2182 / 571
Регистрация: 02.09.2015
Сообщений: 5,510
|
|
| 07.10.2021, 21:20 | |
|
0
|
|
| 08.10.2021, 12:05 | ||
|
Фабричный метод задаёт метод, который следует использовать вместо вызова оператора new для создания объектов-продуктов. Подклассы могут переопределить этот метод, чтобы изменять тип создаваемых продуктов. https://refactoring.guru/ru/de... on/example Это не совсем то, что нужно ТС, так как ТСу известен класс экземпляр которого нужно создать. Машину создает не машина а класс Car, так как он является в питоне фабрикой создания экземпляров. Просто ТС не понимает, как это реализовать. Arsegg, если Вы под паттерном Factory имели ввиду что то другое, то дайте ссылку. Но не понятно, зачем нужно что то еще, когда класс Car сам создает экземпляры машин. Класс Car не является машиной. Поэтому в данном случае нельзя говорить, что "машина создает машину".
0
|
||
|
3582 / 2182 / 571
Регистрация: 02.09.2015
Сообщений: 5,510
|
|
| 08.10.2021, 12:21 | |
|
Viktorrus, по описанию проблемы ТСа сложно судить, какое решение ему подойдет. Я про то, что, конечно, можно написать создающий метод (creation method) для класса Car (автоботы одобряют). Все-таки логичнее, с точки зрения здравого смысла иметь для данных целей фабрику: на случай расширения ассортимента - авиация там, судоходство и т. п.
P. S. Сравнение фабрик. P. P. S. Если ТС хочет добавлять новые ноды, то тогда надо свой класс переименовать на LinkedList, т. к. это уже коллекция, а не Car.
0
|
|
| 08.10.2021, 13:39 | ||||||||||||
|
MixailMokhov, Перед тем, как Вы даете код, нужно давать описание того, что Вы хотите сделать.
Не понятно, что Ваш код делает. Вы хотите создать новую марку машины? Или Вы хотите занести в список существующую марку машины? Или хотите заказать машину, указав желательные для Вас параметры? Создание в питоне экземпляра класса Car осуществляется следующим образом: Кликните здесь для просмотра всего текста
Выводит: Кликните здесь для просмотра всего текста
Добавлено через 3 минуты
0
|
||||||||||||
| 08.10.2021, 13:39 | |
|
TypeError: XXX() missing 1 required positional argument: 'message'
Выдает ошибку "Client.__init__() missing 1 required keyword-only argument: 'intents'" SyntaxError: positional argument follows keyword argument Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет!
За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
|
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык.
Возвращает он вот это:
https:/ / i. **********/ vqBWLe2. png
Нужную строчку в 3й колонке просто выдумал. .
Это. . .
|
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor.
Это. . .
|
Nekobox - outbounds[0].transport: unknown transport type: raw
damix 01.10.2026
Фикс ошибки
Правым кликом по серверу -> отладочная информация -> edit
Заменить "net": "raw", на "net": "tcp",
Нажать кнопку reload.
|
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|