| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Python: Общие вопросы > Функции с разными типами параметров |
| Автор: ecspertiza 22.10.2011, 00:01 | ||||
| В питоне еще не силен, пытаюсь найти как определить допустим две ф-ции с одним именем ,но с разными типами параметров, объясню на примере (C++) если никто не против допустим хочу определить ф-цию loadUserInfo() , могу сделать загрузку информации о пользователе по id или по его имени, стало быть в плюсах я написал так бы
и стало быть при вызове ф-ции loadUserInfoв зависимости от типа параметра будет вызываться или первая ф-ция или вторая. Вопрос как это можно реализовать в питоне нашел такой способ
но может можно элегантнее ? |
| Автор: Gunjy 22.10.2011, 20:12 | ||
Ну можно вынести проверку типа за пределы функции, то есть:
А вообще, насколько мне известно две функции с одинаковым именем в Python создать нельзя, точнее при создании второй функции с таким же именем как и первая, вы просто переопределите первую функцию. |
| Автор: Backward 23.10.2011, 03:37 |
| Можно воспользоваться этим http://code.activestate.com/recipes/577064-simple-function-overloading-with-decorator/ |
| Автор: cutwater 23.10.2011, 12:20 | ||
| Backward, можно, но это будет unpythonic. ecspertiza, Если Вам нужна перегрузка ф-ций в python, значит вы делаете что-то не так. Попробуйте конкретизировать задачу. Исходя из Вашего кода, я бы предложил следующий вариант
Хотя это тоже не лучший вариант, вам стоит пересмотреть подход к проектированию интерфейсов, перегрузка зачастую не нужна в python. |