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模块

  • 相关阅读:
    原型和原型链
    面向对象
    git在idea中的使用,如何构远程git方仓库
    java maven 安装
    Kafka消费者APi
    Kafka生产者APi
    kafka基本概念
    redis常用命令
    redis.conf配置文件参数说明
    Redis.RedisNativeClient的方法get_Db 没有实现
  • 原文地址:https://www.cnblogs.com/wenshu/p/12355672.html
Copyright © 2011-2022 走看看