• 引用 Python 中 import 模块


    Python中模块的最小单位是python文件(*.py)。

    这个文件里面可能定义了若干类、变量、函数等等。

    Python程序或命令行中,可以使用import引入整个模块,或这个模块中具体的类、函数等。

    用import导入模块既可以到文件层次,也可以到目录层次,当然更细可以导入模块内的类、函数等,但我不认为它们算是模块,python中模块最小的粒度就是文件了。

    不同于C语言模块与目录和文件没有必然关系,Python的目录和文件定义了模块的层次关系,例如对于下面的代码结构:

    当希望调用patroni/config.py中定义的default_validator()函数时,可以import patroni.config引入模块,然后以patroni.config.default_validator(None)的方式调用, 也可以 from patroni.config import default_validator 引入仅仅default_validator()函数,然后以default_validator(None)的方式调用。

    也可以使用别名,例如:

    import patroni.config as cf

    然后可以这样调用:

    cf.default_validator(None)

    from patroni.config import default_validator as dv

    然后可以这样调用:

    dv(None)

    目录和文件定义了模块的层次,一个目录可以看做一个更大的模块,目录下需要有一个__init__.py它是这个目录模块的初始化代码,当这个目录被import时,这个文件里的代码被执行,里面可以定义属于这个目录模块的类、函数、变量等,也可以在其中导入其它模块。

    例如dcs_modules()定义在dcs/__init__.py中,可以这样调用它:

    import patroni.dcs

    然后:

    patroni.dcs.dcs_modules()

    __init__.py 可以再引入其它模块,这样可以通过patroni.dcs前缀引用这些模块,如果__init__.py没有引入其它模块,import patroni.dcs后就只能调用__init__.py中定义的类、函数等了,若要调用patroni/dcs目录下的其它模块,必须进一步引用其模块名,例如import patroni.dcs.etcd。

  • 相关阅读:
    能链智电,“重”症在身
    【操作系统-存储】存储的分配和管理方式
    适用于 Mac 或 Windows 的 4 种最佳 JPEG/PNG图片 恢复软件
    文件上传预览下载
    [Java反序列化]—CommonsCollections1
    Python中Collections模块Counter用法
    vue3解决[Vue warn]: Failed to resolve component:XXX
    Python实现的桌面翻译程序代码
    ES6——尾递归优化
    深入理解MySQL索引的数据结构和事务的四大特性、隔离性的四种级别
  • 原文地址:https://blog.csdn.net/howard_shooter/article/details/126606217