使python导入更有条理?

使python导入更有条理?,第1张

概述代码工作,但看起来很乱,所以这可能是一个代码审查问题,我没有研究足够的 pythons约定知道如何构建和组织我的文件的开头更pythonic.我基本上只是粘贴在进口中,所以它们可能是重复的,不再需要或错误订购.你能告诉我如何构建我的导入的任何建议吗?或者我可以留下这样的代码来专注于我自己的功能吗? 档案1: from __future__ import with_statementimport 代码工作,但看起来很乱,所以这可能是一个代码审查问题,我没有研究足够的 pythons约定知道如何构建和组织我的文件的开头更pythonic.我基本上只是粘贴在进口中,所以它们可能是重复的,不再需要或错误订购.你能告诉我如何构建我的导入的任何建议吗?或者我可以留下这样的代码来专注于我自己的功能吗?

档案1:

from __future__ import with_statementimport loggingimport osfrom Google.appengine.API.users import is_current_user_admin,UserNotFoundErrorimport timeimport cgiimport geo.geotypesimport mainimport captchafrom Google.appengine import APIfrom Google.appengine.runtime import DeadlineExceededErrorfrom Google.appengine.ext.webapp.util import run_wsgi_appfrom Google.appengine.ext.blobstore import BlobInfofrom Google.appengine.ext.db import djangoformsfrom django import formsfrom django.core.exceptions import ValIDationErrorfrom django.utils import translationfrom datetime import datetime,timedeltaos.environ['DJANGO_SETTINGS_MODulE'] = 'conf.settings'from django.conf import settingsfrom django.template import RequestContextfrom util import I18NHandlerimport utilfrom Google.appengine.API import urlfetch,taskqueuefrom django.template.defaultfilters import registerfrom django.utils import simpleJson as Jsonfrom functools import wrapsfrom Google.appengine.API import urlfetch,taskqueue,users,imagesfrom Google.appengine.ext import db,webapp,search,blobstorefrom Google.appengine.ext.webapp import util,templatefrom Google.appengine.runtime import DeadlineExceededErrorfrom random import randrangeimport cookieimport base64import cgiimport confimport datetimeimport hashlibimport hmacimport loggingimport timeimport tracebackimport urllibimport twitter_oauth_handlerfrom twitter_oauth_handler import OAuthClIEntfrom geo.geomodel import GeoModelfrom django.utils.translation import gettext_lazy as _webapp.template.register_template_library('common.templatefilters')

文件2(这里有几条说明,我不明白):

from __future__ import with_statement                # -*- Coding: utf-8 -*-import facebookconfimport os,wsgiref.handlersos.environ[u'DJANGO_SETTINGS_MODulE'] = u'conf'import utilimport timeimport loggingimport urllibimport wsgiref.handlersimport appengine_adminimport cgiimport captchaimport reimport hashlibimport stringimport hmacimport twitter_oauth_handlerfrom twitter_oauth_handler import OAuthClIEntos.environ['DJANGO_SETTINGS_MODulE'] = 'conf.settings'from geo.geomodel import GeoModelfrom Google.appengine.dist import use_libraryfrom Google.appengine.ext import blobstore,db,search# template import must be run before other Django modules importsfrom Google.appengine.ext.webapp import blobstore_handlers,util,templatefrom Google.appengine.ext.blobstore import BlobInfofrom Google.appengine.ext.webapp.util import run_wsgi_appfrom Google.appengine.API import files,images,mail,memcache,usersfrom django.conf import settings# Force Django reloadsettings._target = Nonefrom util import I18NHandler,FacebookBaseHandlerfrom Google.appengine.ext.db import djangoformsfrom django.utils import translationfrom django.utils import simpleJson as Jsonfrom django.contrib.formtools.prevIEw import FormPrevIEwfrom random import choicefrom urllib import quotefrom Google.appengine.API.users import is_current_user_admin,UserNotFoundErrorfrom Google.appengine.API import urlfetchimport randomimport datetimefrom datetime import timedeltafrom django.utils.translation import gettext_lazy as _from django.template import defaultfilters

我如何知道移动或移除函数后何时不再使用导入?为什么我不能在一个地方为多个文件指定相同的导入,我必须在两个文件中指定相同的导入?我可以想象将处理导入移动到一个单独的文件,即imports.yaml,以指定该目录中的所有python文件的导入或同样.

解决方法 一旦您使用pylint识别重复和未使用的导入,并根据其他答案建议的PEP8组织它们,您可以通过更改导入包的方式进一步清理它.

代替

from Google.appengine.API import urlfetch,images

你可以这样做

from Google.appengine import API

然后你需要在任何地方使用“API.urlfetch”,“API.taskqueue”等.

这不是“正确”的方式,它只是另一种方式.你必须选择你喜欢的那个.

另请注意,您可以使用别名:

from Google.appengine import API as gaeAPI

现在你要放“gaeAPI.urlfetch”.如果您需要从多个包中导入名为“API”的模块,这将非常有用.

另外,回答你的问题“为什么我不能在一个地方为多个文件指定相同的导入,我必须在两个文件中指定相同的导入?”,如果你在多个文件中导入相同的包,这可能表明这些文件密切相关,应该合并为一个文件.与C或Java不同,每个类都是自己的文件,pythonic方法是使每个模块(文件)尽可能自包含,这通常意味着它们包含多个类和函数.

总结

以上是内存溢出为你收集整理的使python导入更有条理?全部内容,希望文章能够帮你解决使python导入更有条理?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1195895.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存