Я проводил некоторый анализ о том, что 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