Подтвердить что ты не робот

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()
4b9b3361

Ответ 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)