Я понимаю, почему Python требует явного self
квалификатора при обращении к атрибутам экземпляра.
Но я часто забываю это, поскольку он мне не нужен в C ++.
Ошибка Iвнедрить этот способ иногда чрезвычайно трудно уловить;например, предположим, что я пишу
if x is not None:
f()
вместо
if self.x is not None:
f()
Предположим, атрибут x
обычно None
, поэтому f()
вызывается редко.И предположим, что f()
создает только тонкий побочный эффект (например, изменение числового значения или очистка кэша и т. Д.).Если у меня нет безумного количества юнит-тестов, эта ошибка, вероятно, останется незамеченной в течение длительного времени.
Мне интересно, знает ли кто-нибудь методы кодирования или функции IDE, которые могли бы помочь мне поймать или избежать ошибок такого типа.