博客
关于我
python基础之--包和模块
阅读量:797 次
发布时间:2023-03-07

本文共 2525 字,大约阅读时间需要 8 分钟。

Python基础之–包和模块

文章目录

一、模块

1.1 基本概念

  • 定义:模块是一个Python文件,文件名通常以.py结尾(如model1.py)。
  • 作用:用于组织代码,避免代码重复,提高复用性。
  • 使用:通过import语句导入模块中的内容。

1.2 定义模块

一个简单的模块示例:

def runnianjisuan(year):
if year % 4 == 0 and year % 100 != 0 or year % 400 == 0:
print(year, "是闰年")
else:
print(year, "不是闰年")
return
def add(a, b):
return a + b
def sub(a, b):
return a - b
if __name__ == '__main__':
year = int(input("请输入年份:"))
runnianjisuan(year)

1.3 导入模块

  • 语法

    • import 模块名 [as 模块新名字]
    • from 模块名 import 模块属性名 [as 属性新名]
    • from 模块名 import *
    • import 模块名 as 别名
    • from 模块名 import 函数名 as 别名
  • 示例

    # 模块
    import model1
    def fn():
    re = model1.runnianjisuan(1978)
    print(re)
    fn()

1.4 内部属性

  • __file__:绑定模块的路径
  • __name__:绑定模块的名称
  • 如果是主模块(首先启动的模块)则绑定__main__

1.5 常见模块

以下是一些常用的Python模块及其功能:

模块名称 功能描述 官方文档链接
math 数学运算 math模块
os 操作系统接口 os模块
os.path 路径相关操作 os.path模块
datetime 日期和时间 datetime模块
random 随机数生成 random模块
time 时间测量 time模块

1.6 第三方模块

由社区或公司开发,通过包管理工具(如pip)安装,用于实现更高级或更具体的功能。

模块名称 功能描述 示例
numpy 数值计算 import numpy as np<br>array = np.array([1, 2, 3])<br>print(array.mean())
pandas 数据分析 import pandas as pd<br>df = pd.read_csv('data.csv')
matplotlib 数据可视化 import matplotlib.pyplot as plt<br>plt.plot(x, y)
requests HTTP请求处理 import requests<br>response = requests.get('http://example.com')
flask Web应用框架 from flask import Flask<br>app = Flask(__name__)

1.7 自定义模块

用户自己编写的模块,用于复用代码。文件名以.py结尾,存放自定义的函数、类等。

def runnianjisuan(year):
if year % 4 == 0 and year % 100 != 0 or year % 400 == 0:
print(year, "是闰年")
else:
print(year, "不是闰年")
return
def add(a, b):
return a + b
def sub(a, b):
return a - b
if __name__ == '__main__':
year = int(input("请输入年份:"))
runnianjisuan(year)

1.8 模块与包的区别

模块
一个Python文件 一个包含__init__.py的文件夹
提供基本功能单元 用于组织多个模块
文件名为.py 目录名

二、包

1.基本概念

  • 定义:包是包含多个模块的目录。通常,一个包的目录下必须包含一个__init__.py文件,文件名可以为空,但建议包含初始化代码。
  • 作用:用于组织模块的集合,形成层次化的结构,便于管理大型项目。

2.导入包和子包

  • 导入规则
    • import 包名 [as 包别名]
    • import 包名.模块名 [as 模块新名]
    • import 包名.子包名.模块名 [as 模块新名]
    • from 包名 import 模块名 [as 模块新名]
    • from 包名.子包名 import 模块名 [as 模块新名]
    • from 包名.子包名.模块名 import 属性名 [as 属性新名]
    • from 包名 import *
    • from 包名.模块名 import *

2.3 __init__.py

  • 用于初始化Python包或模块,主要作用包括:
    • 标识包目录
    • 执行初始化代码
    • 控制包的导入行为(通过__all__变量)
    • 提供包级别的命名空间
    • 批量导入模块
# __init__.py 文件示例
import os
import sys
import datetime
package_variable = "This is a package variable"
__all__ = ['module1', 'module2']
print("Initializing mypackage")

3.模块与包的区别

属性 模块
内容 一个Python文件 包含多个模块的目录
是否需要__init__.py 不需要(如果文件名以.py结尾) 必须包含__init__.py文件
导入方式 import 模块名 import 包名 [as 包别名]
示例 import model1 import mypackage

转载地址:http://loofk.baihongyu.com/

你可能感兴趣的文章
Python | qutip,一个高级的 Python 库!
查看>>
python | reflex,一个无敌的 Python 库!
查看>>
python | reloading,一个强大的 Python 库!
查看>>
python | rich,一个无敌的 Python 库!
查看>>
python | rlax,一个超强的 强化学习领域 Python 库!
查看>>
python | rpyc,一个超实用的 Python 库!
查看>>
python | rq,一个无敌的 关于Redis 的Python 库!
查看>>
python读取字符串指定位置字符_python要怎么截取指定位置的字符串呢?
查看>>
python | scikit-llm,一个神奇的 Python 库!
查看>>
python | sentry,一个超酷的 关于错误监控工具 Python 库!
查看>>
python | shiv,一个超酷的 打包工具 Python 库!
查看>>
python | six,一个神奇的 Python 库!
查看>>
Python读取图片的几种方法供net使用
查看>>
python | spacy,一个神奇的 Python 库!
查看>>
python | sqlmap,一个实用的 Python 库!
查看>>
python | sumy,一个超酷的 用于文本摘要的 Python 库!
查看>>
python | tiler,一个不可思议的 图像切片重组 Python 库!
查看>>
python | tinydb,一个非常厉害的 关于数据库的 Python 库!
查看>>
python | tox,一个超强的 自动化测试工具 Python 库!
查看>>
python | ttkbootstrap,一个神奇的 Python 库!
查看>>