python进阶之必会知识

大家一起进步,一起加油,感谢大家的支持和关注。


必须会,还得很熟很熟的那种

模块

在Python中,模块(Module)是指一个包含了函数、变量和类等定义的文件,而包(Package)是指包含了多个模块的目录。
模块本质上就是一个py文件

模块介绍

模块一共有三种:

  • python标准库
  • 第三方模块
  • 应用程序自定义模块

导入模块语法

导入模块关键点

  • 模块与包的命名遵从小写+下划线
  • 导入的模块名和函数一样是一等公民
  • “一等公民”(first-class citizen)是指某个实体(通常是数据类型或值)具有与其他实体相同的权利和特权。它表示在语言中,这些实体可以被像任何其他实体一样对待,可以作为参数传递给函数、赋值给变量、存储在数据结构中,以及作为函数的返回值
  • 使用“import module导入模块的本质就是,将 module.py 中的全部代码加载到内存并执行,然后将整个模块内容赋值给与模块同名的变量
  • 导入同一个模块多次,Python只执行一次
  • 在导入模块后,可以在模块文件所在目录下看到一个名为“pycache”的文件夹,打开该文件夹,可以看到 Python 为每个模块都生成一个 *.cpython-3x.pyc 文件,该文件其实是 Python 为模块编译生成的字节码,用于提升该模块的运行效率。

导入模块语法

  1. import 模块名1 [as 别名1], 模块名2 [as 别名2],…:使用这种语法格式的 import 语句,会导入指定模块中的所有成员(包括变量、函数、类等)。不仅如此,当需要使用模块中的成员时,需用该模块名(或别名)作为前缀,否则 Python 解释器会报错。
  2. from 模块名 import 成员名1 [as 别名1],成员名2 [as 别名2],…: 使用这种语法格式的 import 语句,只会导入模块中指定的成员,而不是全部成员。同时,当程序中使用该成员时,无需附加任何前缀,直接使用成员名(或别名)即可。
  3. import 语句也可以导入指定模块中的所有成员,即使用 form 模块名 import *,但此方式不推荐使用。
  4. __all__可以控制*

__name__=='__main__'

if __name__ == '__main__': 的作用是确保只有单独运行该模块时,此表达式才成立,才可以进入此判断语法,执行其中的测试代码;反之,如果只是作为模块导入到其他程序文件中,则此表达式将不成立,运行其它程序时,也就不会执行该判断语句中的测试代码。

循环导入会出bug

什么是包

一个大型的项目往往需要使用成百上千的Python模块,如果将这些模块都堆放在一起,势必不好管理。而且,使用模块可以有效避免变量名或函数名重名引发的冲突,但是如果模块名重复怎么办呢?因此,Python提出了包(Package)的概念。
包就是文件夹,只不过在该文件夹下必须存在一个名为“__init__.py” 的文件,其作用就是告诉 Python 要将该目录当成包来处理

创建包

两步

  1. 创建文件夹
  2. 在下面创建一个名叫 __init__.py的文件
  3. 可以在包中添加模块,也可以创建包

了解一下django框架里面的包结构

在这里插入图片描述

导包语法

  1. import 包名[.模块名 [as 别名]]
  2. from 包名1.包名2 import 模块名 [as 别名]
  3. from 包名1.包名2.模块名 import 成员名 [as 别名]

用 [] 括起来的部分,是可选部分,即可以使用,也可以直接忽略。

导入模块和包本质

通常情况下,当使用 import 语句导入模块后,Python 会按照以下顺序查找指定的模块文件:

  • 在当前目录,即当前执行的程序文件所在目录下查找;
  • 到 PYTHONPATH(环境变量)下的每个目录中查找;
  • 到 Python 默认的安装目录下查找。

以上所有涉及到的目录,都保存在标准模块 sys 的 sys.path 变量中,通过此变量我们可以看到指定程序文件支持查找的所有目录。换句话说,如果要导入的模块没有存储在 sys.path 显示的目录中,那么导入该模块并运行程序时,Python 解释器就会抛出 ModuleNotFoundError(未找到模块)异常。

解决“Python找不到指定模块”的方法有 3 种,分别是:

  1. 向 sys.path 中临时添加模块文件存储位置的完整路径;
  2. 将模块放在 sys.path 变量中已包含的模块加载路径中;
  3. 设置 path 系统环境变量。

功能模块导入功能 模块,import

__init__.py

为了调用包内模块的成员(变量、函数或者类),代码中包含了诸多的 import 导入语句,非常繁琐。通过在 __init__.py 文件使用 import 语句将必要的模块导入,这样当向其他程序中导入此包时,就可以直接导入包名,也就是使用import 包名(或from 包名 import *)的形式即可。

虚拟环境

  1. 隔离依赖:每个项目可以有自己的依赖库,不同项目之间的依赖冲突不会发生。
  2. 简化部署:可以将项目的依赖库和运行环境一起打包,方便在其他计算机上部署和运行。
  3. 灵活性:可以在不同的项目中使用不同的 Python 版本,以满足项目的特定需求。

创建虚拟方式一

在 Python 3.3 及以后的版本中,Python 内置了 venv 模块,用于创建和管理虚拟环境。以下是使用 venv 模块创建和激活虚拟环境的基本步骤:

  1. 创建虚拟环境:
    打开终端(命令行),进入你想要创建虚拟环境的目录,然后运行以下命令:
# 这是 Python 内置的 venv 模块的命令语法。
# 它通过调用 Python 解释器的 -m 参数来执行 venv 模块内建的创建虚拟环境的功能。
python3 -m venv <env_name>
  1. 激活虚拟环境:
    在终端中运行以下命令来激活虚拟环境:
 # 在 macOS/Linux 系统上:
 source myenv/bin/activate
 # 在 Windows 系统上:
 myenv\Scripts\activate

​ 激活虚拟环境后,终端的提示符会显示虚拟环境的名称。

  1. 使用虚拟环境:
    在激活的虚拟环境中,你可以安装和管理项目所需的依赖库,运行项目的代码等。所有的操作都将在虚拟环境中进行,不会影响全局 Python 环境和其他虚拟环境。

  2. 退出虚拟环境:
    在终端中运行以下命令即可退出虚拟环境:

    deactivate
    

pycharm

conda

conda create -n env-name python=3.6
tips:新的开发环境会被默认安装在你conda目录下的envs文件目录下。你可以指定一个其他的路径;

  1. 创建指定位置指定版本的虚拟环境
    conda create -n d:\envs\fist_env python=3.8
  2. 激活虚拟环境
  3. 安装包
  4. 关闭虚拟环境

导出和导入依赖:

# 导出依赖到文件
pip freeze > requirements.txt
# 从文件中导入依赖:
pip install -r requirements.txt

软件目录开发规范

在这里插入图片描述
上述示例中,主要包含以下目录:

  • docs/:用于存放项目的文档,包括需求文档、设计文档和API文档等。
  • src/:存放项目的源代码,按照模块进行组织,例如app/目录下存放应用代码,config/目录下存放配置文件,tests/目录下存放测试代码等。
  • static/:存放静态资源文件,例如CSS样式文件、JavaScript文件、图片文件和字体文件等。
  • templates/:存放模板文件,用于生成动态内容的页面。
  • data/:存放数据文件,例如数据库文件或其他数据存储文件。
  • logs/:存放日志文件,记录项目的运行日志。
  • dist/:存放项目的分发版本,例如编译后的可执行文件或打包后的软件包。
  • vendor/:存放第三方依赖,例如外部库或框架。
  • requirements.txt:列出项目所需的依赖包及其版本信息。
  • README.md:项目说明文档,包含项目的介绍、使用指南和其他相关信息。
  • LICENSE:许可证文件,定义项目的使用和分发条款。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值