加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

使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方法是使每个模块(文件)尽可能自包含,这通常意味着它们包含多个类和函数.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读