|
0 / 0 / 0
Регистрация: 04.10.2021
Сообщений: 1
|
|||||||
TypeError: AddCar() missing 1 required positional argument: 'self'04.10.2021, 12:55. Показов 4077. Ответов 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 Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Знаете, от чего появляется стресс?
kumehtar 15.07.2026
Стресс появляется оттого, что вы, зная как поступить правильно, делаете наоборот.
Ларри Уингет
|
Нас бьют, а мы крепчаем? Какая чушь!
kumehtar 15.07.2026
Вот это вот бытующее мнение, что человек меняется только под действием проблем, всегда считал вредоносным. Поверь, от проблем у людей появляются не изменения, а нервное расстройство и ПТСР. А. . .
|
сукцессия 29. Переход от одних деревьев на другие делать более или менее вероятностным?
anaschu 12.07.2026
Насколько смена типов микоризы — исключительное событие в двухвековой сукцессии? Оценка вероятности в пространстве параметров
В текущей версии модели успешно реализован ключевой механизм. . .
|
сукцессия 27. Думаю, как переделывать уже написанную статью с планами на сукцессию.
anaschu 12.07.2026
Анализ соответствия модели требованиям
Реализованные компоненты:
Механизм закисления почвы через протонную помпу
Конкуренция между типами микориз
pH как триггер сукцессии
C/ P соотношение. . .
|
|
Сукцессия 26. Мат модель создана.
anaschu 12.07.2026
Модель смены растительных сукцессий посредством управления грибами работает внутри небольшой ячейки почвы, восстанавливающейся после пожара, где ненадолго бывшее царство хвойных снова захватили. . .
|
Решил проблему с ошибкой пагинации сообщений с сервера на алгоритме обхода дерева "Эстафета хвоста".
Hrethgir 12.07.2026
Проблема была в том, что удалялась именно новая кнопка, а не старая. Ни один ИИ не обнаружил это, а сам я смог только когда с работой стало попроще и когда заставил работать будущее автономное. . .
|
сукцессия 25. Хронология ошибок
anaschu 12.07.2026
# От 50-тонного гриба до устойчивого леса: хроника ошибок при построении модели вековой сукцессии микоризы
## О чём эта статья
В процессе построения ОДУ-модели (система дифференциальных. . .
|
сукцессия 24. Промежуточное общее описание модели
anaschu 12.07.2026
Хендофф: модель АМ→ЭКМ сукцессии микоризы (ризосфера, 50 лет)
Содержание проекта
Симуляция вековой (50 лет) экологической сукцессии в почве леса
Основные участники: АМ-гриб, ЭКМ-гриб,. . .
|