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