PyLint обнаруживает неопределенные переменные, которые определены и используются в операторе if или с ... в качестве оператора внутри определения класса - PullRequest
1 голос
/ 09 апреля 2020

Я проводил некоторый анализ о том, что Coronavirus и PyLint обнаруживают некоторые неопределенные переменные, которые определены в операторе if или операторе with. мой код работает, как ожидалось, и не вижу ошибок или предупреждений во время выполнения. Вот мой код:

import matplotlib.pyplot as plt
import pandas as pd
from datetime import datetime,date
import os
import requests
import numpy as np

class Covid:
    filename = 'data/' + str(date.today()) + '.csv'
    if not os.path.exists(filename):
        res = requests.get("https://opendata.ecdc.europa.eu/covid19/casedistribution/csv")
        with open(filename, 'w') as f:
            f.write(res.content.decode( "ISO-8859-1"))    
    dateparse = lambda x: pd.datetime.strptime(x, '%d/%m/%Y')
    df = pd.read_csv(filename,sep=',', parse_dates=['dateRep'], date_parser=dateparse, encoding= "ISO-8859-1")    


__init__ и другие функции класса после этого.

Моя проблема в том, что PyLint показывает мне предупреждения о неопределенных переменных:
f в строке 12, сразу после as, где он определен,
f в строке 13 ,
res в строке 13 (это предупреждение исчезнет, ​​если я определю res вне оператора if).

Это не главная проблема, так как моя программа все еще выполняется, но я бы хотел понять, почему PyLint показывает мне предупреждения и избавляет от них. Они не появляются, если я делаю все это вне определения класса.

Я что-то не так делаю? Это PyLint, который не делает то, что должен делать?

Я работаю с Visual Studio Code, pylint 2.4.4 astroid 2.3.3 и Python 3.8.2

...