安装
基础
python程序文件
.py结尾,文件头如下:
1 | |
或
1 | |
区分大小写
入口
| 场景 | 入口 |
|---|---|
| 普通 Python 脚本 | if __name__ == "__main__": main() |
| Python 包 | __main__.py,使用 python -m 包名 |
| 命令行工具 | main() + argparse(或 click、typer) |
| Web 服务(Flask/FastAPI/Django) | 通常由框架启动命令(如 uvicorn、gunicorn、manage.py)调用应用入口,而不是直接执行业务代码 |
变量
动态类型,变量的类型有赋值的数据类型决定,且是可以改变的。
1 | |
常量一般使用全大写命名
类变量和实例变量
| 对比项 | 类变量 | 实例变量 | 局部变量 |
|---|---|---|---|
| 定义位置 | 类中、方法外,a=1 | 方法内通过 self.xxx 定义,self.b =2 |
方法内,c=3 |
| 属于谁 | 类对象 | 实例对象 | 方法 |
| 是否共享 | 所有实例共享一份 | 每个实例独立一份 | 否 |
| 访问方式 | Person.var 或 obj.var |
obj.var |
方法内 |
| 修改影响 | 修改类变量会影响所有未遮蔽它的实例 | 只影响当前实例 | 方法内 |
| 典型用途 | 配置、常量、计数器、共享状态 | 姓名、年龄、余额等每个对象独有的数据 | 方法内临时计算 |
一句话记忆:
- 类变量 = 整个班级共用的一块黑板。
- 实例变量 = 每个学生自己的笔记本。
黑板上的内容所有人都能看到;每个人笔记本上的内容互不影响。
self
self不是关键字,只是一个普通参数名。- Python 会在调用实例方法时,自动把当前对象作为第一个参数传给它。
- 通过
self,方法可以访问和修改当前对象的实例变量(如self.name),也可以调用当前对象的其他方法(如self.hello())。
可以记住一句话:
类是”图纸”,对象是”房子”,
self就是”这栋房子自己的地址”。方法通过self才知道该操作哪一栋房子。
name
文件直接运行:__name__ == "__main__"
文件被 import 导入:__name__ == 模块名
**kwargs
Python 语法,keyword arguments,关键字可变参数。
作用:接收不定数量的关键字参数,打包成字典 dict。
基础示例
1 | |
规则
- 函数定义:
**kwargs,必须两个星号;kwargs 是约定名字,你可以写成**xxx,但习惯用 kwargs - 只能接收
key=value形式的关键字传参,不能传位置参数 - 一个函数里最多只能有一个
\**kwargs - 顺序规范(参数书写顺序):
位置参数 → *args → **kwargs
解包(调用函数时用**)
1 | |
和 *args 对比
*args:接收不定位置参数 → 打包成元组 tuple**kwargs:接收不定关键字参数 → 打包成字典 dict
常见完整组合
1 | |
数据类型
整数
浮点数
字符串
布尔值:True和False
空值:None
数据结构
list
1 | |
tuple:不可变
1 | |
函数
input
format
ord
chr
encode
decode
len
方法
1 | |
一般方法在被调用时才会执行。
作用域
一般建议私有变量或函数以”_“开头命名
特殊变量或函数一般命名规则为:__**__
模块
安装第三方模块
1 | |
引用模块
1 | |
模块搜索路径sys.path。
1 | |
1 | |
方法一:修改sys.path,当前生效
1 | |
方法二:设置环境变量PYTHONPATH,追加到sys.path
类
1 | |
__new__ 负责创建对象
__init__ 负责初始化对象
Python 类的执行可以记住这两条主线:
1、定义类时:执行类体中的顶层代码(如类变量赋值、print 等),创建类对象;方法只是被定义,不会执行。
2、实例化对象时:调用 类名() → __new__() 创建对象 → __init__() 初始化对象 → 返回实例;之后只有显式调用实例方法(如 obj.method())时,对应方法体才会执行。
类对象(Person):保存类变量、方法等定义,由 type 创建。
实例对象(Person() 返回的对象):保存每个实例自己的数据(如 self.name、self.age 等),Person() 并不是创建类,而是调用类对象来创建一个实例对象。
package manager
pip
单独安装pip
1 | |
安装依赖
1 | |
pipx
uv/uvx
UV An extremely fast Python package and project manager, written in Rust.