Python-pylint 'C0103: Недопустимое имя константы
Я смущен ошибкой (-ами) на этой фотографии:
![введите описание изображения здесь]()
Я не знаю, как их исправить. Моя программа - веб-фрейм Python-Flask. Когда я использую VScode для отладки моей программы, Pylint показывает эти ошибки. Я знаю, что эта проблема не имеет значения, но это меня раздражает. Как я могу это исправить?
# -*- coding: utf-8 -*-
import sys
from flask import Flask
from flask_bootstrap import Bootstrap
from flask_moment import Moment
#from flask_wtf import Form
#from wtforms import StringField, SubmitField
#from wtforms.validators import Required
from flask_sqlalchemy import SQLAlchemy
reload(sys)
sys.setdefaultencoding('utf-8')
app = Flask(__name__)
app.config['SECRET_KEY'] = 'hard to guess string'
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://root:@localhost:3306/test?'
app.config['SQLALCHEMY_COMMIT_ON_TEARDOWN'] = True
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = True
bootstrap = Bootstrap(app)
moment = Moment(app)
db = SQLAlchemy(app)
if __name__ == '__main__':
db.create_all()
app.run()
Ответы
Ответ 1
Как объяснил Кундор, PEP 8 утверждает, что:
Константы обычно определяются на уровне модуля и записываются всеми прописными буквами с подчеркиванием, разделяющим слова.
Дело в том, что "константы" в python действительно не существуют. Pylint, согласно PEP 8, ожидает, что переменные уровня модуля будут "константами".
Если у вас есть несколько вариантов:
-
вам не нужна эта "постоянная" вещь, затем измените регулярное выражение pylint const-rgx
таким же, как например. variable-rgx
,
-
вы можете деактивировать эти предупреждения для этого файла или даже локально в файле, используя # pylint: disable=invalid-name
,
-
избегайте переменных уровня модуля, обертывая их в функцию.
В вашем случае я бы пошел с третьим вариантом, создав функцию build_app
или что-то подобное, что вернет приложение (и, возможно, объект "db", но у вас есть несколько вариантов выбора). Затем вы можете добавить соль второго варианта, чтобы получить что-то вроде:
app = build_app() # pylint: disable=invalid-name
Ответ 2
PEP 8 указывает, что имена констант должны быть во всех шапках.
Итак, переименуйте эти переменные во все шапки.
Совет. Если вы google 'C0103', это приведет вас к записи wiki
Ответ 3
Переименуйте эти переменные как все шапки.
Например,
app = Flask(__name__) => APP = Flask(__name__)
bootstrap = Bootstrap(app) => BOOTSTRAP = Bootstrap(app)