170 похожих чатов

Народ, а поясните мне пжалста семантику вот такой конструкции: class A:

def some_method(...):
...
method = some_method

И здесь нет ошибки в индентации - переменная method имеет такой же уровень отступа, как и сигнатура метода. Как это вообще предполагается будет работать?

15 ответов

26 просмотров

будет а чего нет то?

считай что один метод под двумя названиями

Tom-Cauf Автор вопроса
Alex
будет а чего нет то?

А как? Я чет не догоняю. Получается, у нас method - это аттрибут класса, являющийся алиасом к методу?

Tom Cauf
А как? Я чет не догоняю. Получается, у нас method ...

ну some_method и method это просто ссылки на функцию

Tom-Cauf Автор вопроса
Alex
ну some_method и method это просто ссылки на функц...

В целом понятно, спс. Но все равно говно какое-то

Tom-Cauf Автор вопроса
Alex
где говно? что говно?

Да вот такие вот присвоения под методами. Они во первых нихрена не читаемы, их легко пропустить как часть кода метода

Tom Cauf
Да вот такие вот присвоения под методами. Они во п...

я тебе даже больше скажу, свойства примерно так и работают: >>> class A: ... def foo(self): ... return 1 ... foo = property(foo) ... >>> A().foo 1

Tom-Cauf Автор вопроса

а как предлагаешь?

Tom-Cauf Автор вопроса
Tishka17
а как предлагаешь?

Да никак. Я откровенно говоря вообще не понимаю, за каким хреном это здесь нужно. Что мешает использовать сам метод?

Tom-Cauf Автор вопроса
Tishka17
необходимость нескольких имен

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

Tom Cauf
Я в коде необходимости не вижу. Зато вижу код, кот...

https://github.com/Tishka17/aiogram_dialog/blob/develop/aiogram_dialog/manager/manager_middleware.py#L23 вот пример где я не знаю как по другому сделать. Мне нуно чтобы 3 метода были идентичны

Tom-Cauf Автор вопроса
Tishka17
https://github.com/Tishka17/aiogram_dialog/blob/de...

class A: def _proto_method(self, ...): ... def method_1(self, *args, **kwargs): self._proto_method(*args, **kwargs) def method_2(self, *args, **kwargs): self._proto_method(*args, **kwargs) def method_3(self, *args, **kwargs): self._proto_method(*args, **kwargs) не так красиво, зато очевидно

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Карта сайта