IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: 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
for path in sys.path:
    print(path)

我们使用import语句导入sys模块,这句话告诉python解释器,我们想要使用sys模块,由于sys模块是个内置模块,那么python知道应该在哪里去找它;但是如果这个模块是用python编写的模块呢,这是解释器将会从sys.path变量所提供的路径进行查找,如上面的代码输出结果如下:

注意以上地址,如果想要复用代码,那么就需要将自定义的函数放入上面的地址。

模块的 __name__

每一个模块都定义了它自己的__name__属性,如果它与__main__的属性相同,则代表这个模块是用户自己在运行。

将下面的代码保存为import module_test1.py

if __name__ == '__main__':
    print('这个程序在自己运行!')
else:
    print('我是被import进来的!')

然后在同目录下新建python文件,导入:

import module_test1

输出结果为:我是被import进来的!

编写自己的模块

每一个 Python 程序同时也是一个模块,只需要保证它以 .py 为扩展名即可。将下面的代码保存为mymodule.py文件。

def say_hi():
    print('Hi, 这是模块在说话哦!')
__version__ = '0.1'

然后使用该模块

使用方法1

在相同目录新建py文件,内容如下:

import mymodule

mymodule.say_hi()
print('版本号:', mymodule.__version__)

注意:方法或者在导入后,直接调用,便会运行该方法或者函数。mymodule.__version__是变量,可以对它进行打印,赋值等操作。

使用方法2

from mymodule import say_hi, __version__

say_hi()
print('版本号:', __version__)

但是上面的方法在使用时,里面的变量可能会和其他变量产生冲突,比如__version__,而方法1由于带有.号,则不会冲突。

使用方法3

使用*导入全部共有变量和函数,但是__version__是私有变量,不会导入。

from mymodule import *

say_hi()
print('版本号:', __version__)  #输出将会出错:name '__version__' is not defined

包是指一个文件夹套文件夹的结构,它里面有一个__init__.py文件, 并且每一个子文件夹也有一个__init__.py文件。这个__init__.py文件可以为空,它表示这个文件夹是一个包。所有的第三方库和标准库都有这样的包管理模式。

以pandas为例

它的子文件夹

使用pandas.__file__可以打开pandas所在路径。

import pandas
print(pandas.__file__)

包的使用

如下所示的文件夹abc同目录下新建文件__init__.py,abc文件夹里面建立两个py文件。

todo1.py内定义了一个函数func1:

def func1():
    print('我是文件夹abc里面,python文件todo1里面,的函数1')

todo2.py内定义了一个函数func2:

def func2():
print('我是文件夹abc里面,python文件todo2里面,的函数2')

待更新。。。。。


需要注意的是 from package import item 方式导入包时,这个子项(item)既可以是子包也可以是其他命名,如函数、类、变量等。若无,会引发ImportError异常。

而用类似 import item.subitem.subsubitem 这样的语法时,这些子项必须是包,最后的子项可以是包或模块,但不能是类、函数、变量等。

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-07-11 16:36:07  更:2021-07-11 16:37:43 
 
开发: 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-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计