zoukankan      html  css  js  c++  java
  • __all__

    Python中一个py文件就是一个模块,“__all__”变量是一个特殊的变量,可以在py文件中,也可以在包的__init__.py中出现
    1、在普通模块中使用时,表示一个模块中允许哪些属性可以被导入到别的模块中,
    如:全局变量,函数,类。如下,test001.py和test002.py
    test001:

    __all__ = ['A','B']
    def A():
    print("a")

    def B():
    print("b")


    def C():
    print("c")


    def _d():
    print("d")

    test002:
    from test.test001 import *
    A()
    B()
    #C() # 会抛错

    那么在模块中的__all__变量就是为了限制或者指定能被导入到别的模块的函数,类,全局变量等,如果指定了那么只能是指定的那些可以被导入,没有指定默认就是全部可以导入,当然私有属性应该除外。(私有属性默认是不会被导入的)

    2. 在包下的__init__.py中

    在 test/__init__.py中加入 __all__ = ['test001','test002']
    在from test import *,只会导入all里面定义的2个函数;当__init__.py为空时,只是导入这个包,并非导入模块,因为导入 包时会首先执行下__init__.py这个文件
    from . import test001 导入当前目录下的test001模块
    from .. import test001 导入上一层目录下的test001模块

  • 相关阅读:
    BZOJ2456
    BZOJ2648
    POJ1639
    LOJ6003
    LOJ6002
    LOJ6001
    LOJ116
    POJ2594
    BZOJ4554
    JS事件 加载事件(onload)注意:1. 加载页面时,触发onload事件,事件写在<body>标签内。 2. 此节的加载页面,可理解为打开一个新页面时。
  • 原文地址:https://www.cnblogs.com/wenshu/p/12355672.html
Copyright © 2011-2022 走看看