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

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

04.05.2020, 19:36. Показов 1717. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru