使python导入更有条理?
发布时间:2020-12-20 13:04:33 所属栏目:Python 来源:网络整理
导读:代码工作,但看起来很乱,所以这可能是一个代码审查问题,我没有研究足够的 pythons约定知道如何构建和组织我的文件的开头更pythonic.我基本上只是粘贴在进口中,所以它们可能是重复的,不再需要或错误订购.你能告诉我如何构建我的导入的任何建议吗?或者我可以留
代码工作,但看起来很乱,所以这可能是一个代码审查问题,我没有研究足够的
pythons约定知道如何构建和组织我的文件的开头更pythonic.我基本上只是粘贴在进口中,所以它们可能是重复的,不再需要或错误订购.你能告诉我如何构建我的导入的任何建议吗?或者我可以留下这样的代码来专注于我自己的功能吗?
档案1: from __future__ import with_statement import logging import os from google.appengine.api.users import is_current_user_admin,UserNotFoundError import time import cgi import geo.geotypes import main import captcha from google.appengine import api from google.appengine.runtime import DeadlineExceededError from google.appengine.ext.webapp.util import run_wsgi_app from google.appengine.ext.blobstore import BlobInfo from google.appengine.ext.db import djangoforms from django import forms from django.core.exceptions import ValidationError from django.utils import translation from datetime import datetime,timedelta os.environ['DJANGO_SETTINGS_MODULE'] = 'conf.settings' from django.conf import settings from django.template import RequestContext from util import I18NHandler import util from google.appengine.api import urlfetch,taskqueue from django.template.defaultfilters import register from django.utils import simplejson as json from functools import wraps from google.appengine.api import urlfetch,taskqueue,users,images from google.appengine.ext import db,webapp,search,blobstore from google.appengine.ext.webapp import util,template from google.appengine.runtime import DeadlineExceededError from random import randrange import Cookie import base64 import cgi import conf import datetime import hashlib import hmac import logging import time import traceback import urllib import twitter_oauth_handler from twitter_oauth_handler import OAuthClient from geo.geomodel import GeoModel from django.utils.translation import gettext_lazy as _ webapp.template.register_template_library('common.templatefilters') 文件2(这里有几条说明,我不明白): from __future__ import with_statement # -*- coding: utf-8 -*- import facebookconf import os,wsgiref.handlers os.environ[u'DJANGO_SETTINGS_MODULE'] = u'conf' import util import time import logging import urllib import wsgiref.handlers import appengine_admin import cgi import captcha import re import hashlib import string import hmac import twitter_oauth_handler from twitter_oauth_handler import OAuthClient os.environ['DJANGO_SETTINGS_MODULE'] = 'conf.settings' from geo.geomodel import GeoModel from google.appengine.dist import use_library from google.appengine.ext import blobstore,db,search # template import must be run before other Django modules imports from google.appengine.ext.webapp import blobstore_handlers,util,template from google.appengine.ext.blobstore import BlobInfo from google.appengine.ext.webapp.util import run_wsgi_app from google.appengine.api import files,images,mail,memcache,users from django.conf import settings # Force Django reload settings._target = None from util import I18NHandler,FacebookBaseHandler from google.appengine.ext.db import djangoforms from django.utils import translation from django.utils import simplejson as json from django.contrib.formtools.preview import FormPreview from random import choice from urllib import quote from google.appengine.api.users import is_current_user_admin,UserNotFoundError from google.appengine.api import urlfetch import random import datetime from datetime import timedelta from 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方法是使每个模块(文件)尽可能自包含,这通常意味着它们包含多个类和函数. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |