У меня есть приложение Flask
, которое становится очень большим, и я хотел бы переместить некоторые функции класса во внешний файл, так как файл превышает 500 строк. Эти функции имеют некоторые logi c для изменения некоторых атрибутов класса и большие (с точки зрения строк).
Ниже приведен демонстрационный сценарий, в котором я пытаюсь отслеживать количество запросов. Предположим, что increment
- это огромная функция, и я хотел бы перенести некоторые функции во вспомогательную функцию, например help_to_add
, которая требует изменения некоторых атрибутов класса.
app.py
from flask import make_response
from modules import help_to_add
import sys
sys.path.append('..')
from untitled import app
class Main:
def __init__(self):
self.requests = 0
def increment(self):
self = help_to_add(self)
main = Main()
@app.route('/', methods=['POST'])
def hello():
v1 = add(3, 5)
main.increment()
v2 = add(4, 6)
main.increment()
return make_response('{}, {}\n'.format(v1, v2), 200)
if __name__ == '__main__':
app.run(port='7000', host='0.0.0.0')
modules.py
def help_to_add(object):
object.requests += 1
return object
_<em>init</em>_.py
from flask import Flask
app = Flask(__name__)
Прямо сейчас я достигаю этого, передавая self
в качестве параметра, но он делает не выглядят очень чистыми для меня. Мне интересно, есть ли лучший способ сделать это. Я знаю, что в идеале у нас должна быть эта функция (help_to_add
) в том же файле под классом, и я должен попытаться переместить методы stati c во вспомогательную функцию и реорганизовать свой код. Я сделал все это, но у меня просто есть много функций, которым нужно читать / изменять атрибуты класса, и мне нужно переместить некоторые из них в отдельный модуль.
PS: Изначально я использовал global
переменных, и этот файл, т.е. modules.py
, действовал как файл, содержащий все вспомогательные функции. Я пытаюсь полностью изменить кодовую базу, чтобы использовать классы и полностью избегать global
переменных.