| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Python知识库 -> python 模块,包 -> 正文阅读 |
|
[Python知识库]python 模块,包 |
模块是怎么工作的?例如,当我们写如下语句:
我们使用import语句导入sys模块,这句话告诉python解释器,我们想要使用sys模块,由于sys模块是个内置模块,那么python知道应该在哪里去找它;但是如果这个模块是用python编写的模块呢,这是解释器将会从sys.path变量所提供的路径进行查找,如上面的代码输出结果如下: 注意以上地址,如果想要复用代码,那么就需要将自定义的函数放入上面的地址。 模块的 __name__每一个模块都定义了它自己的__name__属性,如果它与__main__的属性相同,则代表这个模块是用户自己在运行。 将下面的代码保存为import module_test1.py
然后在同目录下新建python文件,导入:
输出结果为:我是被import进来的! 编写自己的模块每一个 Python 程序同时也是一个模块,只需要保证它以 .py 为扩展名即可。将下面的代码保存为mymodule.py文件。
然后使用该模块 使用方法1在相同目录新建py文件,内容如下:
注意:方法或者在导入后,直接调用,便会运行该方法或者函数。mymodule.__version__是变量,可以对它进行打印,赋值等操作。 使用方法2
但是上面的方法在使用时,里面的变量可能会和其他变量产生冲突,比如__version__,而方法1由于带有.号,则不会冲突。 使用方法3使用*导入全部共有变量和函数,但是__version__是私有变量,不会导入。
包包是指一个文件夹套文件夹的结构,它里面有一个__init__.py文件, 并且每一个子文件夹也有一个__init__.py文件。这个__init__.py文件可以为空,它表示这个文件夹是一个包。所有的第三方库和标准库都有这样的包管理模式。 以pandas为例 它的子文件夹 使用pandas.__file__可以打开pandas所在路径。
包的使用如下所示的文件夹abc同目录下新建文件__init__.py,abc文件夹里面建立两个py文件。 todo1.py内定义了一个函数func1:
todo2.py内定义了一个函数func2: def func2(): 需要注意的是 from package import item 方式导入包时,这个子项(item)既可以是子包也可以是其他命名,如函数、类、变量等。若无,会引发ImportError异常。 而用类似 import item.subitem.subsubitem 这样的语法时,这些子项必须是包,最后的子项可以是包或模块,但不能是类、函数、变量等。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 | -2024/12/25 15:02:17- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |
数据统计 |