Python __all__ 详解(限制导入)

文章目录

  • 1 概述
  • 2 实例
  • 3 扩展
    • 3.1 from module import * 和 import module 区别

1 概述

1. 结论:用于 '限制' 模块导入
   若已定义 '__all__',all 中指定的 属性、方法、类 可被导入,
   反之,则正常导入(类、public 属性 和 方法)
       
2. 导入方式
   from module import *  # 唯一
   # import module       # 整个模块导入,__all__ 无效

2 实例

1. 目录结构
   demo
     -- DemoAll.py
   	 -- DemoAllTest.py

DemoAll.py:

__all__ = ['var']  # 一般位于最前面


class Person:
    @staticmethod
    def say():
        return 'say'


def func():
    return 'func'


var = 520

DemoAllTest.py:(all 中定义的对象才能被导入)

from demo.DemoAll import *

print(var)

3 扩展

3.1 from module import * 和 import module 区别

# 你渴了,想喝水,但水在车上,车在其它地方,此时
from module import *  # 将 '水' 从 '车' 中取出

import module         # 直接将 '车' 开过来

你可能感兴趣的:(Python,python,all)