跳转到主要内容

控制模块的导出成员

项目描述

Modul

/moˈduːl/

Tests pypi version Code style: black pdm-managed

控制模块的导出成员

需求

Modul需要Python >=3.7

安装

$ python -m pip install modul

Modul是一个单文件模块,代码少于200行,无依赖项。它可以轻松地复制到您的项目中。

快速开始

编写导出有限成员的模块

# mymodule.py
from modul import exports


@exports
def foo():
    return 42


baz = "unexported"
bar = "hello"

exports.bar = bar

在另一个模块或REPL中

>>> import mymodule
>>> mymodule.foo()
42
>>> mymodule.bar
"hello"
>>> mymodule.baz
AttributeError: Module test has no attribute baz
>>> mymodule.__all__
['foo', 'bar']

用法

  1. 使用装饰器导出函数

    @exports
    def foo():
        return 42
    
  2. 使用属性集导出变量

    exports.bar = 42
    

    注意,要在模块内部使用该变量,您仍需要为它声明一个变量

    bar = 42
    exports.bar = bar
    
  3. 使用项目集导出变量

    exports["bar"] = 42
    

    此外,exports对象支持所有dict API

    exports.update({"bar": 42})
    
  4. 导出(name, value)对的映射

    exports({
        "bar": 42,
        "baz": "hello"
    })
    
  5. 您甚至可以进行条件导出和从函数调用中进行导出

    flag = True
    if flag:
        exports.foo = 42
    
    def export_bar():
        exports.bar = 42
    export_bar()
    
  6. 或者,您可以将成员分配给模块的exports属性

    import modul
    
    modul.exports = {
        "bar": 42,
        "baz": "hello"
    }
    

    注意,在这种情况下,您不能使用exports = <variable>,因为这会丢失对API的引用。并且每次赋值都会覆盖前一个赋值,因此模块中只能有一个赋值。

项目详情


下载文件

下载您平台上的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源分布

modul-0.2.0.post0.tar.gz (5.1 kB 查看哈希)

上传于

构建分发

modul-0.2.0.post0-py3-none-any.whl (4.4 kB 查看哈希)

上传于 Python 3

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面