python从其他文件导入模块_Python模块可以使用其他文件的导入吗?

我有这样的事情:

# a.py

import os

class A:

...

# b.py

import a

class B(A):

...

在B类(b.py)中,我希望能够使用在a.py中导入的模块(在本例中为os).是否可以在Python中实现此行为,还是应该导入两个文件中的模块?

编辑:我不担心导入时间,我的问题是导入块对文件造成的视觉混乱.我最终在每个控制器(RequestHandler)中都有这样的东西:

from django.utils import simplejson

from google.appengine.ext import webapp

from google.appengine.ext.webapp import template

from google.appengine.ext import db

这就是我想要避免的.

解决方法:

是的,您可以通过转到a.os来使用其他文件中的导入.

然而,pythonic的方法是只导入你需要的精确模块而不用链(它可以导致循环引用).

导入模块时,代码将被编译并插入名称字典中 – >模块对象.字典位于sys.modules.

import sys

sys.modules

>>> pprint.pprint(sys.modules)

{'UserDict': ,

'__builtin__': ,

'__main__': ,

'_abcoll': ,

# the rest omitted for brevity

当您尝试再次导入模块时,Python将检查字典以查看它是否已存在.如果是,它将返回已编译的模块对象给您.否则,它将编译代码,并将其插入sys.modules中.

由于字典是作为哈希表实现的,因此与创建循环引用的风险相比,此查找非常快并且占用的时间可以忽略不计.

Edit: I’m not worried about the import

times, my problem is the visual

clutter that the block of imports puts

on the files.

如果你只有大约4或5个这样的进口,它不会太杂乱.请记住,“明确比隐含更好”.但是,如果它真的困扰你那么多,那么这样做:

from django.utils import simplejson

from google.appengine.ext import webapp

from google.appengine.ext.webapp import template

from google.appengine.ext import db

from importheaders import *

标签:python

来源: https://codeday.me/bug/20190714/1457572.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值