![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| HellanD |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 443 Регистрация: 16.5.2006 Где: Киев Репутация: 1 Всего: 2 |
Скажите такой вопрос!
Я делаю клас и хочу что б в зависимости от числа переменных переданных в него вызывался один или другой конструктор. Как это реализовать и есть ли такая возможность? |
|||
|
||||
| albertn |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 368 Регистрация: 17.7.2006 Где: г. Ставрополь Репутация: 30 Всего: 34 |
Я бы сделал так:
|
|||
|
||||
| HellanD |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 443 Регистрация: 16.5.2006 Где: Киев Репутация: 1 Всего: 2 |
А вот можно чтоб как в С++ можно было вообще разные параметры передавать?
Ну для одних параметров один конструктор для других - другой? |
|||
|
||||
| PyS |
|
||||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 149 Регистрация: 21.8.2006 Где: г. Алматы (Казахс тан) Репутация: нет Всего: 1 |
Добавлено @ 09:52
HellanD, пожалуйсьа, пример кода в C++! |
||||||
|
|||||||
| HellanD |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 443 Регистрация: 16.5.2006 Где: Киев Репутация: 1 Всего: 2 |
Компилятора С у меня на работе нету :-(
Напишу код на питоне (Я хотел бы что б он работал так же как и С++ код а по этому взял конструкции из С++)
Если это было бы в С++ то при например таком вызове конструктора класа: X=Lodar() получали бы print "Lod1" А при X=Lodar("БлаБлаБла") получали бы print "Lod2" Спасибо за ответ! |
|||
|
||||
| albertn |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 368 Регистрация: 17.7.2006 Где: г. Ставрополь Репутация: 30 Всего: 34 |
|
|||
|
||||
| HellanD |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 443 Регистрация: 16.5.2006 Где: Киев Репутация: 1 Всего: 2 |
albertn:
Смотри тут есть одна проблемма например класс
В идеале надо просмотреть кипу параметров. Если например параметры(params) не переданы то должны быть переданы тогда:CurvName=None,dke=None,outform=None И тогда конструктор будет иметь вид(во время вызова): def __init__(self,CurvName=None,dke=None,outform=None) И получится что он будет думать что CurvName это params (ему то ниче вообще не мешает так думать) Да обьявление переменных без укахзания типов имеет кроме очевидных плюсов еще и минусы(ну по крайней мере один, как мне кажеться) А может тогда передавать в конструктор данные так А=Admin(None,None,CurvName,dke,outform)?? |
|||
|
||||
| PyS |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 149 Регистрация: 21.8.2006 Где: г. Алматы (Казахс тан) Репутация: нет Всего: 1 |
HellanD, как в С++, я думаю не получить, т.к. второй __init___ будет "затирать" первый конструктор. Как выход используй:
10 0 проверил - должно работать! |
|||
|
||||
| albertn |
|
||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 368 Регистрация: 17.7.2006 Где: г. Ставрополь Репутация: 30 Всего: 34 |
Я не совсем понял, что ты имеешь ввиду. Приведу пример, чтоб тебе было понятней:
|
||||||
|
|||||||
| HellanD |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 443 Регистрация: 16.5.2006 Где: Киев Репутация: 1 Всего: 2 |
Спасибки теперь ясно стало!!
|
|||
|
||||
| Artemios |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 405 Регистрация: 14.8.2006 Где: Саратов, Россия Репутация: 18 Всего: 50 |
A = Admin(CurvName=CurvName,dke=dke,outform=outform) albertn хорошо показал. Это сообщение отредактировал(а) Artemios - 13.9.2006, 11:01 -------------------- fib = 1: 1: [ x+y | (x,y) <- zip fib (tail fib) ] |
|||
|
||||
| pythonwin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2529 Регистрация: 18.4.2006 Где: за компом Репутация: 14 Всего: 36 |
Так код более понятный. |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Python: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |