последние несколько слабых, я немного играю с картой Web.py. Поскольку мое приложение становится все больше и больше, я хочу реструктурировать исходный код и поместить фрагменты кода в разные классы. Теперь я не знаю, где я должен создавать экземпляры объектов, если они мне нужны в разных классах web.py. Допустим, мой исходный код выглядит следующим образом:web.py: избегать глобальных экземпляров?
import web
import myclass
urls = (
'/', 'index',
'/test', 'test'
)
#should i make my instance global...
my = myclass.myClass()
class test:
def __init__(self):
#...or should i make my instance local: my = myclass.myClass()
pass
def GET(self):
item = my.getItem()
return item
def POST(self):
pass
class index:
def __init__(self):
#...or should i make my instance local: my = myclass.myClass()
pass
def GET(self):
date = my.getDate()
return date
if __name__ == "__main__":
app = web.application(urls, globals())
app.run()
Теперь я хочу, чтобы получить доступ к методам getItem()
и getDate()
(которые принадлежат к экземпляру my
), если соответствующие сайты в моей WebBrowser называются. Теперь мой вопрос: должен ли я сделать экземпляр глобальным или лучше, если я сделаю его локальным? Мне действительно не нравятся глобальные экземпляры, но я не вижу другого способа сделать его глобальным. Конечно, было бы возможно создать локальный экземпляр, но тогда, каждый раз, когда загружается страница, будет создан новый экземпляр, верно? Обычно это не проблема, но myclass
обращается к последовательному порту, поэтому мне нужно убедиться, что создан только один экземпляр.
Я пропустил что-то или является глобальным экземпляром, единственным возможным решением для этого?
Было бы лучше сделать это глобальным объектом, я считаю. – thefourtheye