Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
55 / 13 / 2
Регистрация: 26.10.2014
Сообщений: 1,107

Перегрузка методов

04.05.2020, 19:36. Показов 1767. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
>>> class Animal:
...     def __init__(self):
...         self.name = "Animal"
...         self.age = 0
...         self.legs = 4
...         print("The object has been created")
...     def __init__(self, name, age, legs):
...         self.name = name
...         self.age = age
...         self.legs = legs
...         print("The object has been created")
...     def GetInfo(self):
...         print("Name is " + self.name + "\nAge is " + self.age + "\nlegs is " + self.legs)
a = Animal()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: __init__() missing 3 required positional arguments: 'name', 'age', and 'legs'
Почему?
Заранее благодарен!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
04.05.2020, 19:36
Ответы с готовыми решениями:

Перегрузка магических методов
Правильно ли я перегружаю операторы , если нет как можно улучшить? class Int: def __init__(self, n): self.num = n def...

ООП, наследование, перегрузка методов
Создать класс квадрат, член класса — длина стороны. Предусмотреть в классе методы вычисления и вывода сведений о фигуре: периметр, площадь,...

Перегрузка методов
Я новичок и пытаюсь разобраться в перегрузках методов класса Sad Допустим есть класс X b childX наследущий его методы... Код: class X...

8
Эксперт Python
 Аватар для unfindable_404
693 / 471 / 204
Регистрация: 22.03.2020
Сообщений: 1,051
04.05.2020, 19:39
Так у вас два метода __init__. Удалите нижний и ошибки не будет
0
55 / 13 / 2
Регистрация: 26.10.2014
Сообщений: 1,107
04.05.2020, 19:45  [ТС]
unfindable_404, Перегрузка метода __init__ невозможна в Python?
Если я хочу создать
a = Animal()
Для автоматического присвоения параметров, или передать значения, для явного. Не уж то мне 2 класса делать, тупо же!
0
Эксперт Python
 Аватар для unfindable_404
693 / 471 / 204
Регистрация: 22.03.2020
Сообщений: 1,051
04.05.2020, 20:02
jonikster, А вы слышали об аргументах функции со значениями по умолчанию?

Добавлено через 1 минуту
Python
1
2
3
4
def __init__(self, name="Animal", age=0, legs=4):
    self.name = name
    self.age = age
    self.legs = legs
0
55 / 13 / 2
Регистрация: 26.10.2014
Сообщений: 1,107
04.05.2020, 20:02  [ТС]
unfindable_404, Я задал конкретный вопрос. Перегрузка конструктора. Возможна в Python?
0
Эксперт Python
 Аватар для unfindable_404
693 / 471 / 204
Регистрация: 22.03.2020
Сообщений: 1,051
04.05.2020, 20:07
Я указал вам направление и даже написал правильный код.

Добавлено через 1 минуту
Цитата Сообщение от jonikster Посмотреть сообщение
Перегрузка конструктора. Возможна в Python?
Да, возможна. Но причём тут ваш случай?
0
55 / 13 / 2
Регистрация: 26.10.2014
Сообщений: 1,107
04.05.2020, 20:18  [ТС]
unfindable_404, При том, что я не хочу использовать именованые аргументы метода. Я хочу сделать 2 разных метода, которые будут вызываться в зависимости от параметров
0
Эксперт Python
 Аватар для unfindable_404
693 / 471 / 204
Регистрация: 22.03.2020
Сообщений: 1,051
04.05.2020, 20:24
То, что вы написали - это не перегрузка. И нет, то что вы пытаетесь сделать, как мне кажется, сделать нельзя, да и нет в этом смысла.
Вам надо, просто, написать один метод и сделать так, чтобы он выполнял разные действия в зависимости от количества переданных аргументов.
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
05.05.2020, 01:34
jonikster,
В Python нет возможности перегрузить метод класса. Но это особо не нужно. Мне ни разу понадобилось за несколько лет. Выводы?
Не тащите в Python C++. У Python свой дзен и его нужно понимать.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.05.2020, 01:34
Помогаю со студенческими работами здесь

Перегрузка методов
помогите сделать перегрузку,вот программа using System; using System.Collections.Generic; using System.Linq; using System.Text; ...

Перегрузка методов
1. Сделать программу с двумя перегруженными методами. Первый – вычисляет площадь круга по радиусу. Второй – вычисляет площадь сектора ...

Перегрузка методов
Не могу решить Как создать метод, который принимает список целых чисел и возвращает новый список с целыми числами в обратном порядке

Перегрузка методов
Hello! Прошу помощи от экспертов в С++.Помогите решить задачу!и прокомментировать выполнения действий. Перегрузка методов. ...

Перегрузка методов
Определить произведение четных цифр числа.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru