@sazhyk

Почему PyCharm выдает такое предупреждение?

Есть такой пример
Пример
class Person:

    def __init__(self):
        pass

    def foo(self, name=None):

        def __init__(self):
            self.name = name

        result = []
        result = result.append(name)
        return result

PyCharm подсказывает
Скрин
5afe8688d87e4276350148.png

Является ли это ошибкой в коде? Где я делаю эту ошибку? Что необходимо сделать, чтобы её исправить?
  • Вопрос задан
  • 215 просмотров
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Python
Седой и строгий
Предупреждение в переводе звучит так "скрывает имя 'self' из внешней области видимости". А означает оно то, что аргумент self вложенной функции __init__ перекрывает аргумент self объемлющего метода foo. Если внутри этого __init__ вам понадобиться обратиться к внешнему self, вы не сможете этого сделать. Если вам этого и не нужно, то можно не беспокоится. А если нужно, то self вложенной функции надо во что-нибудь переименовать.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы