![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
ecspertiza |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 763 Регистрация: 3.11.2008 Где: г.Смоленск Репутация: нет Всего: 5 |
В питоне еще не силен, пытаюсь найти как определить допустим две ф-ции с одним именем ,но с разными типами параметров, объясню на примере (C++) если никто не против
![]() допустим хочу определить ф-цию loadUserInfo() , могу сделать загрузку информации о пользователе по id или по его имени, стало быть в плюсах я написал так бы
и стало быть при вызове ф-ции loadUserInfoв зависимости от типа параметра будет вызываться или первая ф-ция или вторая. Вопрос как это можно реализовать в питоне нашел такой способ
но может можно элегантнее ? |
||||
|
|||||
Gunjy |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 16.5.2009 Репутация: нет Всего: нет |
Ну можно вынести проверку типа за пределы функции, то есть:
А вообще, насколько мне известно две функции с одинаковым именем в Python создать нельзя, точнее при создании второй функции с таким же именем как и первая, вы просто переопределите первую функцию. Это сообщение отредактировал(а) Gunjy - 22.10.2011, 20:18 |
|||
|
||||
Backward |
|
|||
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 5.6.2007 Репутация: 2 Всего: 2 |
Можно воспользоваться этим рецептом
|
|||
|
||||
cutwater |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 592 Регистрация: 24.6.2008 Репутация: 1 Всего: 10 |
Backward, можно, но это будет unpythonic.
ecspertiza, Если Вам нужна перегрузка ф-ций в python, значит вы делаете что-то не так. Попробуйте конкретизировать задачу. Исходя из Вашего кода, я бы предложил следующий вариант
Хотя это тоже не лучший вариант, вам стоит пересмотреть подход к проектированию интерфейсов, перегрузка зачастую не нужна в python. |
|||
|
||||
![]() ![]() ![]() |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Python: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |