__call__ из подписи теней метакласса __init__Python

Программы на Python
Anonymous
__call__ из подписи теней метакласса __init__

Сообщение Anonymous »

Я хотел бы, чтобы в коде ниже было указано, что когда я набираю instance_of_A = A(), имя предполагаемых аргументов — init_argumentA, а не *meta_args, **meta_kwargs . Но, к сожалению, показаны аргументы метода __call__ метакласса

.

Код: Выделить всё

class Meta(type):
def __call__(cls,*meta_args,**meta_kwargs):
# Something here
return super().__call__(*meta_args, **meta_kwargs)

class A(metaclass = Meta):
def __init__(self,init_argumentA):
# something here

class B(metaclass = Meta):
def __init__(self,init_argumentB):
# something here
Я искал решение и нашел вопрос Как динамически изменять сигнатуры метода в подклассе?
и декоратор, изменяющий сигнатуру: правильное документирование дополнительного аргумента. Но ничего, кажется, это полностью то, что я хочу. Первая ссылка использует проверку для изменения количества переменных, переданных функции, но я не могу позволить этому работать в моем случае и думаю, что должно быть более очевидное решение.
Второй вариант не совсем то, что мне нужно, но что-то в этом роде может быть хорошей альтернативой.

Изменить: я работаю в Spyder. Я хочу этого, потому что у меня есть тысячи классов типа Meta, и каждый класс имеет разные аргументы, которые невозможно запомнить, поэтому идея состоит в том, чтобы пользователь мог запомнить это, когда увидит правильные аргументы.

Подробнее здесь: https://stackoverflow.com/questions/497 ... re-of-init

Вернуться в «Python»