Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 我是否可以强制“import mymodule”只导入定义和类,而不导入前几行中导入的模块(依赖项)?_Python_Python 3.x_Import_Module_Scope - Fatal编程技术网

Python 我是否可以强制“import mymodule”只导入定义和类,而不导入前几行中导入的模块(依赖项)?

Python 我是否可以强制“import mymodule”只导入定义和类,而不导入前几行中导入的模块(依赖项)?,python,python-3.x,import,module,scope,Python,Python 3.x,Import,Module,Scope,我是python的初学者,已经编写了一个类似以下内容的模块: # filename: mymodule.py import numpy as np from datetime import datetime def a(): ...<stuff>... def b(): ...<stuff>... #文件名:mymodule.py 将numpy作为np导入 从日期时间导入日期时间 定义a(): ...... def b(): ...... 通常(与PEP8

我是python的初学者,已经编写了一个类似以下内容的模块:

# filename: mymodule.py
import numpy as np
from datetime import datetime
def a():
   ...<stuff>...
def b():
   ...<stuff>...
#文件名:mymodule.py
将numpy作为np导入
从日期时间导入日期时间
定义a():
......
def b():
......
通常(与PEP8一致)的共识似乎是导入语句应该位于文件头。然而,现在当我导入mymodule时,运行
dir(mymodule)
显示对象
np
datetime
mymodule
的一部分,这看起来效率低下且“草率”。似乎只保留类和def的一种方法是通过对
globals()
的动态迭代进行某种条件删除(在尝试了一段时间后,似乎真的很难实现),或者在所有内容上都使用
del
关键字



主要问题:我可以这样做吗?我可以动态地而不是显式地这样做吗?无论标头模块是否是导入的一部分,defs是否独立工作?否则导入的
每次都会崩溃,我想。

为什么你认为拥有其他模块效率低下?这不是有点混乱吗?我想这是我的主要抱怨。我的意思是,假设我在一些python脚本
中将mymodule导入为我的;将numpy作为np导入
。现在有两个
numpy
副本占用内存--
numpy
mymodule.np
。虽然我认为这是一个非常小的空间,不。
numpy
mymodule.np
都引用了
sys.modules
中的相同条目。我忘了我什么都不知道。谢谢。@DanielRoseman那么,让外部模块引用传播到单独导入的模块中,这是公认的做法吗?在我看来,这不是“正确的方法”,因为导入标准库,如
sys
os
,和
numpy
,表明
dir(np)
dir(os)
,等等中没有外来模块名。对于任何具有大量
类和
def
的文件,这可能是有效的,总是在
\uuu init\uuuu.py
文件中使用x import y
中的name explicit
?为什么您认为使用其他模块效率低下?这不是有点混乱吗?我想这是我的主要抱怨。我的意思是,假设我在一些python脚本
中将mymodule导入为我的;将numpy作为np导入
。现在有两个
numpy
副本占用内存--
numpy
mymodule.np
。虽然我认为这是一个非常小的空间,不。
numpy
mymodule.np
都引用了
sys.modules
中的相同条目。我忘了我什么都不知道。谢谢。@DanielRoseman那么,让外部模块引用传播到单独导入的模块中,这是公认的做法吗?在我看来,这不是“正确的方法”,因为导入标准库,如
sys
os
,和
numpy
,表明
dir(np)
dir(os)
,等等中没有外来模块名。对于任何具有大量
类和
def
的文件,这可能是有效的,是否始终在
\uuuu init\uuuuuuuuuuy.py
文件中使用来自x导入y的显式名称