[Python3] Как я могу решить это предупреждение? (Локальные переменные, на которые есть ссылки перед присваиванием) - PullRequest
0 голосов
/ 19 сентября 2018

Изображение моего кода

Я использовал модуль xlrd.И это сработало очень хорошо.но я хочу решить это предупреждение.Как это сделать?

Ответы [ 3 ]

0 голосов
/ 19 сентября 2018

, если блок try выдает исключение, sheet не будет определен.Просто переместите его использование в блок try (так как это бессмысленно без инициализации sheet в любом случае):

try:
    wb = xlrd.open_worbook("/path/to/file")
    sheet = wb.sheet_by_name("mysheet")
    print_all_cell(sheet) # Here!
except IOError:
    # Handle error...
0 голосов
/ 19 сентября 2018

Вы пытаетесь открыть рабочую книгу, и после этого вы замедляете переменную страницу.Pycharm не понимает, что в блоке исключений вы выйдете из приложения, если что-то пойдет не так.Таким образом, предполагается, что пользователь пытается замедлить новую переменную внутри блока try, если перед этим объявлением возникнет исключение, оно не будет инициализировано.Пожалуйста, проверьте пример ниже:

try:
    a = int('abc')
    b = a + 5
except ValueError:
    pass

print(b)

и при запуске вы получите NameError: name 'b' is not defined

0 голосов
/ 19 сентября 2018

Вам нужно поставить print_all_cell в блок try, в конце его.

...