Jak złe są nazwy cieni zdefiniowane w zewnętrznych zakresach?
Właśnie przeniosłem się do Pycharm i jestem bardzo zadowolony ze wszystkich ostrzeżeń i wskazówek, które zapewnia mi ulepszenie mojego kodu. Z wyjątkiem tego, którego nie rozumiem:
This inspection detects shadowing names defined in outer scopes.
Wiem, że dostęp do zmiennej z zewnętrznego zakresu jest złą praktyką, ale jaki jest problem z cieniowaniem zewnętrznego zakresu?
Oto jeden przykład, w którym Pycharm wyświetla komunikat ostrzegawczy:
data = [4, 5, 6]
def print_data(data): # <-- Warning: "Shadows 'data' from outer scope
print data
print_data(data)