Python怎么隐藏模块内对象?Python模块内对象导入如何不被调用

在python程序开发过程之中 , 经常会将一个python文件作为另一个python程序的模块导入使用 , 但是被导入的python文件中有些对象是不希望去暴露的 , 要隐藏起来不被调用 。那么这个时候就可以去设置一个__all__私有变量了来解决这个需求 , 下文有代码示例和详细解析 。

Python怎么隐藏模块内对象?Python模块内对象导入如何不被调用

文章插图
(1)在python之中只要在变量名前后都加上两个下划线就表示这个对象是只属于当前作用域的私有对象了 , 在外部访问它的时候就无法被调用 。但是一些对象需要能在当前python程序内使用 , 但是不希望被导入时又不需要被其他对象调用的话就不能用这个语法了 。
而__all__这个私有变量表示的就是当前python文件之中哪些对象是可以公开的 , 不被添加到这个变量中的对象就是无法访问的 , 示例如下所示:
# 定义一个名为module1的python模块def hello():    print("Hello, Python")def world():    print("Pyhton World is funny")def test():    print('--test--')__all__ = ['hello', 'world']# 在另一个python程序中导入这个模块并且访问其对象from module1 import *hello()world()test()(2)上面的这一段代码执行完毕之后就会出现报错 , 报错的提示信息就是找不到名为test()的函数 。这是因为除了test()函数之外的两个函数都在module1模块内将其给添加到了__all__变量之中 , 这样就只有它们两个函数是公开可以被其他对象所访问的了 。
而在使用这个变量时就需要注意一点 , 它是将需要被访问的对象暴露在外部 , 其他的没有添加到变量内的对象就是会完全无法被访问的 。
【Python怎么隐藏模块内对象?Python模块内对象导入如何不被调用】以上就是关于“Python怎么隐藏模块内对象?Python模块内对象导入如何不被调用”的全部内容了 , 希望对你有所帮助 。

    推荐阅读