导入自定义模块,请勿从该模块加载其他导入

时间:2019-01-11 15:54:58

标签: python-3.x

我正在尝试构建一些自定义Python模块。

即使我能够使用所有模块。当我尝试导入模块时,正在导入其他模块。

例如:

mod1.py

import os
import sys

def f(x):
    return (x**2)

main.py

import mod1

dir(mod1.os)

如何避免这种行为?用户应该不能从mod1访问其他模块。在此示例中,os和sys。

我应该将import语句放在函数内吗?还有其他方法可以防止这种情况发生吗?

1 个答案:

答案 0 :(得分:0)

您看到的行为是完全正常的。 Python没有像其他语言那么强烈地隐藏元素。 我们都是成年人,在没有该语言强力执行的情况下,应该表现得负责任。

  

我应该将import语句放在函数内吗?

不,您的代码就可以了。

如果您打算编写一堆python代码,则应遵循其他人所遵循的常规约定,如示例代码所示。在main.py中,如果要访问os函数,则一定要在其中使用import,而不要从mod1.os借用引用。