Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / PHP, Perl, Python Новый топик    Ответить
 Можно в классе определить несколько одноименных функций с разным количеством параметров?  [new]
AlekseySQL
Member

Откуда:
Сообщений: 952
И чтобы при вызове этой функции python сам выбирал какую функцию использовать (по количеству переданных параметров).

Нигде не нашел.
9 дек 18, 10:36    [21758336]     Ответить | Цитировать Сообщить модератору
 Re: Можно в классе определить несколько одноименных функций с разным количеством параметров?  [new]
Изопропил
Member

Откуда:
Сообщений: 31109
«Очень трудно найти в тёмной комнате чёрную кошку, особенно, если её там нет»
9 дек 18, 10:52    [21758346]     Ответить | Цитировать Сообщить модератору
 Re: Можно в классе определить несколько одноименных функций с разным количеством параметров?  [new]
полудух
Member

Откуда: планета орков, г.Зверополис
Сообщений: 556
можно
в C++
9 дек 18, 10:53    [21758347]     Ответить | Цитировать Сообщить модератору
 Re: Можно в классе определить несколько одноименных функций с разным количеством параметров?  [new]
AlekseySQL
Member

Откуда:
Сообщений: 952
Народ, а еще вопросик, который нигде не нашел: когда я создал абстрактный класс и в производном классе перегружаю один из его методов, то как происходит сопоставление: только по имени метода или в том числе используется информация о сигнатуре метода (набор параметров)?
9 дек 18, 11:32    [21758364]     Ответить | Цитировать Сообщить модератору
 Re: Можно в классе определить несколько одноименных функций с разным количеством параметров?  [new]
AlekseySQL
Member

Откуда:
Сообщений: 952
И еще вопросик: копипастом перенес в Eclipse значения перечисления:

class Sex(IntEnum):
    Мужской = 1
    Женский = 2


А он мне не подчеркивает русские слова как ошибку. Значит можно хранить значения перечисления в кириллице? А что еще в Python можно делать на русском языке?
9 дек 18, 11:37    [21758368]     Ответить | Цитировать Сообщить модератору
 Re: Можно в классе определить несколько одноименных функций с разным количеством параметров?  [new]
AlekseySQL
Member

Откуда:
Сообщений: 952
И еще вопросик: можно передавать в функцию классы (не экземляры!)?

class Sex(IntEnum):
    Мужской = 1
    Женский = 2

class FieldEnum(Field):
    def __init__(self, class_enum, value_string: str):
        self.class_enum = class_enum
        self.value_string= value_string
        
    def value_int(self):
        return self.class_enum[self.value_string]
9 дек 18, 11:58    [21758377]     Ответить | Цитировать Сообщить модератору
 Re: Можно в классе определить несколько одноименных функций с разным количеством параметров?  [new]
NekZ
Member

Откуда: Санкт-Петербург
Сообщений: 3563
AlekseySQL
И чтобы при вызове этой функции python сам выбирал какую функцию использовать (по количеству переданных параметров).

Нигде не нашел.

Используй *args, **kwargs и будет тебе счастье. Сам Python не будет за тебя этого делать. Здесь тебе не C++ и не Java.
9 дек 18, 12:07    [21758380]     Ответить | Цитировать Сообщить модератору
 Re: Можно в классе определить несколько одноименных функций с разным количеством параметров?  [new]
kealon(Ruslan)
Member

Откуда: Нижневартовск
Сообщений: 4612
AlekseySQL
Народ, а еще вопросик, который нигде не нашел: когда я создал абстрактный класс и в производном классе перегружаю один из его методов, то как происходит сопоставление: только по имени метода или в том числе используется информация о сигнатуре метода (набор параметров)?
только по имени метода
9 дек 18, 13:10    [21758405]     Ответить | Цитировать Сообщить модератору
 Re: Можно в классе определить несколько одноименных функций с разным количеством параметров?  [new]
AlekseySQL
Member

Откуда:
Сообщений: 952
kealon(Ruslan)
AlekseySQL
Народ, а еще вопросик, который нигде не нашел: когда я создал абстрактный класс и в производном классе перегружаю один из его методов, то как происходит сопоставление: только по имени метода или в том числе используется информация о сигнатуре метода (набор параметров)?
только по имени метода


Спасибо! А что про передачу классов и кириллицу?
9 дек 18, 13:33    [21758416]     Ответить | Цитировать Сообщить модератору
 Re: Можно в классе определить несколько одноименных функций с разным количеством параметров?  [new]
kealon(Ruslan)
Member

Откуда: Нижневартовск
Сообщений: 4612
AlekseySQL,

проверить же не долго. по идее класс ничем не отличается от функции создающей экземпляр

тынц

с кирилицей я п не риковал
9 дек 18, 13:42    [21758422]     Ответить | Цитировать Сообщить модератору
 Re: Можно в классе определить несколько одноименных функций с разным количеством параметров?  [new]
AlekseySQL
Member

Откуда:
Сообщений: 952
kealon(Ruslan)
AlekseySQL,

проверить же не долго. по идее класс ничем не отличается от функции создающей экземпляр

тынц

с кирилицей я п не риковал


За примерчик пасибки!

У меня такой уровень знаний, что я могу неправильно проверить :) Да и иногда в лоб не решается, а погромисты уже знают обходные пути...

Насчет кириллицы- мне данные приходят в русском виде из инета. Записываю я их в БД как int (чтобы меньше хранить) и поэтому единственное что мне нужно сделать- получить числовое значение по русскому представлению (что отлично делают перечисления). Не хочется сначала русские данные конвертить в английские, а потом английские в числа: и кода много, и работает долго.
9 дек 18, 13:54    [21758430]     Ответить | Цитировать Сообщить модератору
 Re: Можно в классе определить несколько одноименных функций с разным количеством параметров?  [new]
kealon(Ruslan)
Member

Откуда: Нижневартовск
Сообщений: 4612
AlekseySQL,

не вижу смысла
словарь то всяко быстрее
9 дек 18, 14:11    [21758438]     Ответить | Цитировать Сообщить модератору
 Re: Можно в классе определить несколько одноименных функций с разным количеством параметров?  [new]
AlekseySQL
Member

Откуда:
Сообщений: 952
kealon(Ruslan)
AlekseySQL,

не вижу смысла
словарь то всяко быстрее


Да, оказалось, что IntEnum не позволяет хранить ключи с пробелами (а одно значение во входных данных с пробелом у меня есть). Поэтому решил перейти на старый добрый dict, который в качестве ключей и кириллицу отлично пережевывает.
9 дек 18, 14:34    [21758453]     Ответить | Цитировать Сообщить модератору
 Re: Можно в классе определить несколько одноименных функций с разным количеством параметров?  [new]
AlekseySQL
Member

Откуда:
Сообщений: 952
kealon(Ruslan)
AlekseySQL,

не вижу смысла
словарь то всяко быстрее


Не факт, что словарь быстрее: все- таки он дополнительно поддерживает изменяемость + в словаре ключ может быть числом/строкой/тюплом + значение может быть произвольного типа. Вся эта универсальность, которой нет в IntEnum может только ухудшить производительность.
10 дек 18, 00:23    [21758684]     Ответить | Цитировать Сообщить модератору
 Re: Можно в классе определить несколько одноименных функций с разным количеством параметров?  [new]
Изопропил
Member

Откуда:
Сообщений: 31109
"тюпл" - это кортеж, если что
10 дек 18, 06:41    [21758743]     Ответить | Цитировать Сообщить модератору
 Re: Можно в классе определить несколько одноименных функций с разным количеством параметров?  [new]
Hett
Member

Откуда: Бийск, Новосибирск
Сообщений: 13505
оказалось, что IntEnum не позволяет хранить ключи с пробелами

какая неожиданность :)
10 дек 18, 08:32    [21758776]     Ответить | Цитировать Сообщить модератору
 Re: Можно в классе определить несколько одноименных функций с разным количеством параметров?  [new]
AlekseySQL
Member

Откуда:
Сообщений: 952
Hett
оказалось, что IntEnum не позволяет хранить ключи с пробелами

какая неожиданность :)


Неправильно сформулировал: оказалось, что у меня есть значения перечисления с пробелом, которые нельзя хранить в IntEnum.
10 дек 18, 10:34    [21758849]     Ответить | Цитировать Сообщить модератору
Все форумы / PHP, Perl, Python Ответить