Это больше вопрос о том, какие лучшие практики или лучшие советы по стилю использования self
в Python, чем о том, как это использовать. В основном мой вопрос: следует ли мне использовать «собственную» версию моей переменной как можно скорее и каждый раз после этого, или уместно ли иногда использовать «несамостоятельную» версию.
Вот пример, в котором я как можно скорее использую «собственную» версию своих переменных:
def outside_function1(var1, var2):
"""Does something"""
def outside_function2(var1, var2):
"""Does something else"""
class MyClass1:
def __init__(self, a, b, c, d):
self.a = a
self.b = b
self.c = c
self.d = d
self.variable_to_calculate = outside_function1(self.a, self.b, self.c) + outside_fuction2(self.a, self.b, self.d)
Вот другой пример, в котором я не использую «собственную» версию своих переменных в той же функции инициализации :
class MyClass2:
def __init__(self, a, b, c, d):
self.a = a
self.b = b
self.c = c
self.d = d
self.variable_to_calculate = outside_function1(a, b, c) + outside_fuction2(a, b, d)
Если вы не заметили, разница в строке с self.variable_to_calculate
.
Я думаю, что второй пример, где я не использую self
каждый раз может быть более читаемым. Это избавляет вас от необходимости прокручивать вправо, чтобы прочитать всю строку. Я также думаю, что это позволяет быстрее определить, какие переменные передаются во внешние функции. Но я также мог видеть случаи, когда, возможно, было бы больше ясности, используя первый пример.
Итак, если оба этих примера будут делать одно и то же, один из них более правильный?