Я прошу прощения у всех - я здесь не виноват Питон. Это просто отражение того, правильно ли то, что я считаю. Будучи преданным Python в течение двух лет, я писал только небольшие приложения и хвалил Python везде, куда бы я ни шел. Недавно у меня была возможность прочитать код Django, и я начал задаваться вопросом, действительно ли Python следует своей философии «количества читабельности». Например,
class A:
a = 10
b = "Madhu"
def somemethod(self, arg1):
self.c = 20.22
d = "some local variable"
# do something
....
...
def somemethod2 (self, arg2):
self.c = "Changed the variable"
# do something 2
...
Трудно отследить поток кода в ситуациях, когда переменные экземпляра создаются при использовании (то есть self.c
в приведенном выше фрагменте). Невозможно увидеть, какие переменные экземпляра определены при чтении значительного количества кода, написанного таким образом. Это становится очень неприятно даже при чтении класса с 6-8 методами и не более 100-150 строк кода.
Мне интересно знать, искажено ли мое чтение этого кода в стиле C ++ / Java, поскольку большинство других языков придерживаются того же подхода, что и они. Есть ли Pythonic способ чтения этого кода более свободно? Что заставило разработчиков Python принять эту стратегию, помня о «читабельности»?