我正在使用Twisted构建一个Web应用程序,对于站点资源,我有一个这样的结构:
/resources
__init__.py
file.py
javascript.py
images.py
wsdl.py
/pages
__init__.py
page.py
static.py
login.py
...etc...
其中file.py和page.py包含具有共同功能的父类(例如,分别是文件路径验证和会话/模板).每个其他脚本包含一个类,它是一个扭曲的资源.我的__init__.py文件如下所示:
import javascript
Javascript = javascript.Javascript
import images
Images = images.Images
...
所以,在主脚本中,在将执行交给twisted之前,我只能导入资源;导入页面,然后只引用resources.Javascript(),pages.Login()等,而不是必须写
from resources.javascript import Javascript
from resources.images import Images
from resources.wsdl import WSDL
from pages.static import Static
from pages.login import Login
...
然后使用这些类中的每一个来构建站点结构.它很快变得难以驾驭.
请注意,我并没有接近这个问题,“我总是将成为这个项目的唯一开发者,因此无关紧要”的心态.
这是对进口系统的非人道滥用吗?我应该从页面导入*中扣除并使用,然后使用pages.Static(),pages.Login()等?
如果这适用于站点资源,因为每个文件包含一个充当该资源的类,那么在其他地方采用以避免长串导入是不合适的,还是只会导致头痛?
解决方法:
你有什么理由不想使用(在资源/ __ init__.py中):
from javascript import Javascript
from images import Images
这意味着在客户端代码中您仍然可以执行以下操作:
import resources
js = resources.Javascript()
imgs = resources.Images()
在任何一种情况下,我都认为在__init__.py中导入各种定义以使它们直接通过导入库/子包命名空间可用时没有任何问题.这是一个很常见的习语,我经常使用它.
标签:python,import,twisted 来源: https://codeday.me/bug/20190827/1735902.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。