python入门第二十二节模块和包

2024-03-04 15:12

本文主要是介绍python入门第二十二节模块和包,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

模块和包

  • 模块概念
  • 模块导入
  • 模块搜索路径
  • \_\_name\_\_属性
  • 包的概念
  • 包的作用
  • 包的导入

模块概念

  • 模块是一个包含Python定义和语句的文件,文件名就是模块名后跟文件后缀 .py

模块导入

  • 模块可以被别的程序引入,以使用该模块中定义的变量和函数等功能
  • 习惯上(但不强制要求)把所有 import 语句放在模块的开头
  • 一个模块被另一个程序导入时,会执行该模块
  • 一个模块只会被另一个程序导入一次
模块导入
import 模块1[, 模块2[,… 模块n]]
import 模块1 as 别名1[, 模块2 as 别名2[,… 模块n as 别名n]]
from 模块 import 属性或方法1[, 属性或方法2[,… 属性或方法n]]
from 模块 import 属性或方法1 as 别名1[, 属性或方法2 as 别名2[,… 属性或方法n as 别名n]]
from module import *

注意:请慎用 from module import * ,很容易出现名称重复的情况,导致出现一些意外的问题

模块搜索路径

  • sys 模块的 path 变量包含了 Python 解释器自动查找所需模块的路径的列表
  • 如果这些路径都找不到,则会报错:ModuleNotFoundError: No module named’xxx’
import sysprint(sys.path)  # 会输出当前模块的查找路径,会按结果依次查询

__name__属性

  • 每个模块都有一个__name__属性,当其值是 ‘main’ 时,说明该模块自身在运行,否则说明该模块被导入,其值为模块名
  • 在完成一个模块的编写之前,我们一般会对模块中的功能进行测试,看看各项功能是否正常运行。对于这些测试的代码,我们希望只在直接运行这个py文件的时候执行,而在用其他的程序导入这个模块的时候不要执行。这个时候就可以借助__name__属性来实现
print('在该模块自身运行时会执行')
print('在该模块被导入时也会执行')if __name__ == '__main__':print('在if语句下的程序块仅在该模块自身运行时才执行')
else:print('在else子句下的程序块在该模块自身运行时不会执行')print('但是在被导入时, 会执行')

包的概念

  • Python包实际上就是一个文件夹,只是该文件夹里面一定包含 init.py 模块
  • 和文件夹一样,包里面还可以装其他的包

包的作用

  • 避免相同命名冲突: 如果在同一个包里,是不允许两个模块命名相同的,但是如果不在同一个包里,是可以的
  • 模块分区: 把不同功能的模块归类到不同的包里,方便查询和修改。在比较大型的项目中常常需要编写大量的模块,此时我们可以使用包来对这些模块进行管理

包的导入

包的导入
import 包1[, 包2[,… 包N]]
import 包1as 别名1[, 包2 as 别名2[,… 包N as 别名N]]
from 包 import 模块1[, 模块2[,… 模块N]]
from 包 import 模块1 as 别名1[, 模块2 as 别名2[,… 模块N as 别名N]
from 包.模块import 属性或方法1[, 属性或方法2[,… 属性或方法N]]
from 包.模块 import 属性或方法1 as 别名1[, 属性或方法2 as 别名2[,… 属性或方法N as 别名N]]

这篇关于python入门第二十二节模块和包的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/773581

相关文章

Spring Security 从入门到进阶系列教程

Spring Security 入门系列 《保护 Web 应用的安全》 《Spring-Security-入门(一):登录与退出》 《Spring-Security-入门(二):基于数据库验证》 《Spring-Security-入门(三):密码加密》 《Spring-Security-入门(四):自定义-Filter》 《Spring-Security-入门(五):在 Sprin

python: 多模块(.py)中全局变量的导入

文章目录 global关键字可变类型和不可变类型数据的内存地址单模块(单个py文件)的全局变量示例总结 多模块(多个py文件)的全局变量from x import x导入全局变量示例 import x导入全局变量示例 总结 global关键字 global 的作用范围是模块(.py)级别: 当你在一个模块(文件)中使用 global 声明变量时,这个变量只在该模块的全局命名空

深入探索协同过滤:从原理到推荐模块案例

文章目录 前言一、协同过滤1. 基于用户的协同过滤(UserCF)2. 基于物品的协同过滤(ItemCF)3. 相似度计算方法 二、相似度计算方法1. 欧氏距离2. 皮尔逊相关系数3. 杰卡德相似系数4. 余弦相似度 三、推荐模块案例1.基于文章的协同过滤推荐功能2.基于用户的协同过滤推荐功能 前言     在信息过载的时代,推荐系统成为连接用户与内容的桥梁。本文聚焦于

【Python编程】Linux创建虚拟环境并配置与notebook相连接

1.创建 使用 venv 创建虚拟环境。例如,在当前目录下创建一个名为 myenv 的虚拟环境: python3 -m venv myenv 2.激活 激活虚拟环境使其成为当前终端会话的活动环境。运行: source myenv/bin/activate 3.与notebook连接 在虚拟环境中,使用 pip 安装 Jupyter 和 ipykernel: pip instal

【机器学习】高斯过程的基本概念和应用领域以及在python中的实例

引言 高斯过程(Gaussian Process,简称GP)是一种概率模型,用于描述一组随机变量的联合概率分布,其中任何一个有限维度的子集都具有高斯分布 文章目录 引言一、高斯过程1.1 基本定义1.1.1 随机过程1.1.2 高斯分布 1.2 高斯过程的特性1.2.1 联合高斯性1.2.2 均值函数1.2.3 协方差函数(或核函数) 1.3 核函数1.4 高斯过程回归(Gauss

数论入门整理(updating)

一、gcd lcm 基础中的基础,一般用来处理计算第一步什么的,分数化简之类。 LL gcd(LL a, LL b) { return b ? gcd(b, a % b) : a; } <pre name="code" class="cpp">LL lcm(LL a, LL b){LL c = gcd(a, b);return a / c * b;} 例题:

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

Java 创建图形用户界面(GUI)入门指南(Swing库 JFrame 类)概述

概述 基本概念 Java Swing 的架构 Java Swing 是一个为 Java 设计的 GUI 工具包,是 JAVA 基础类的一部分,基于 Java AWT 构建,提供了一系列轻量级、可定制的图形用户界面(GUI)组件。 与 AWT 相比,Swing 提供了许多比 AWT 更好的屏幕显示元素,更加灵活和可定制,具有更好的跨平台性能。 组件和容器 Java Swing 提供了许多

【IPV6从入门到起飞】5-1 IPV6+Home Assistant(搭建基本环境)

【IPV6从入门到起飞】5-1 IPV6+Home Assistant #搭建基本环境 1 背景2 docker下载 hass3 创建容器4 浏览器访问 hass5 手机APP远程访问hass6 更多玩法 1 背景 既然电脑可以IPV6入站,手机流量可以访问IPV6网络的服务,为什么不在电脑搭建Home Assistant(hass),来控制你的设备呢?@智能家居 @万物互联

poj 2104 and hdu 2665 划分树模板入门题

题意: 给一个数组n(1e5)个数,给一个范围(fr, to, k),求这个范围中第k大的数。 解析: 划分树入门。 bing神的模板。 坑爹的地方是把-l 看成了-1........ 一直re。 代码: poj 2104: #include <iostream>#include <cstdio>#include <cstdlib>#include <al