From 050e3c5aae6e6c5ebd3ad542334cccd40169d168 Mon Sep 17 00:00:00 2001 From: e2hang <2099307493@qq.com> Date: Mon, 8 Sep 2025 21:11:28 +0800 Subject: [PATCH] Altered --- Class/ClassTest/.idea/.gitignore | 3 + Class/ClassTest/.idea/ClassTest.iml | 8 + .../inspectionProfiles/profiles_settings.xml | 6 + Class/ClassTest/.idea/misc.xml | 7 + Class/ClassTest/.idea/modules.xml | 8 + Class/ClassTest/.idea/vcs.xml | 6 + Class/ClassTest/main.py | 5 + Class/readme.md | 244 ++++++++++++++++++ Packages/StandardLibrary/readme.md | 166 ++++++++++++ Packages/readme.md | 111 ++++++++ 10 files changed, 564 insertions(+) create mode 100644 Class/ClassTest/.idea/.gitignore create mode 100644 Class/ClassTest/.idea/ClassTest.iml create mode 100644 Class/ClassTest/.idea/inspectionProfiles/profiles_settings.xml create mode 100644 Class/ClassTest/.idea/misc.xml create mode 100644 Class/ClassTest/.idea/modules.xml create mode 100644 Class/ClassTest/.idea/vcs.xml create mode 100644 Class/ClassTest/main.py create mode 100644 Class/readme.md create mode 100644 Packages/StandardLibrary/readme.md create mode 100644 Packages/readme.md diff --git a/Class/ClassTest/.idea/.gitignore b/Class/ClassTest/.idea/.gitignore new file mode 100644 index 0000000..359bb53 --- /dev/null +++ b/Class/ClassTest/.idea/.gitignore @@ -0,0 +1,3 @@ +# 默认忽略的文件 +/shelf/ +/workspace.xml diff --git a/Class/ClassTest/.idea/ClassTest.iml b/Class/ClassTest/.idea/ClassTest.iml new file mode 100644 index 0000000..d8b3f6c --- /dev/null +++ b/Class/ClassTest/.idea/ClassTest.iml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/Class/ClassTest/.idea/inspectionProfiles/profiles_settings.xml b/Class/ClassTest/.idea/inspectionProfiles/profiles_settings.xml new file mode 100644 index 0000000..105ce2d --- /dev/null +++ b/Class/ClassTest/.idea/inspectionProfiles/profiles_settings.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/Class/ClassTest/.idea/misc.xml b/Class/ClassTest/.idea/misc.xml new file mode 100644 index 0000000..1d3ce46 --- /dev/null +++ b/Class/ClassTest/.idea/misc.xml @@ -0,0 +1,7 @@ + + + + + + \ No newline at end of file diff --git a/Class/ClassTest/.idea/modules.xml b/Class/ClassTest/.idea/modules.xml new file mode 100644 index 0000000..55f4861 --- /dev/null +++ b/Class/ClassTest/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/Class/ClassTest/.idea/vcs.xml b/Class/ClassTest/.idea/vcs.xml new file mode 100644 index 0000000..b2bdec2 --- /dev/null +++ b/Class/ClassTest/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Class/ClassTest/main.py b/Class/ClassTest/main.py new file mode 100644 index 0000000..cb2be4b --- /dev/null +++ b/Class/ClassTest/main.py @@ -0,0 +1,5 @@ +import os + +class Test: + def __init__(self): + \ No newline at end of file diff --git a/Class/readme.md b/Class/readme.md new file mode 100644 index 0000000..9d9fae0 --- /dev/null +++ b/Class/readme.md @@ -0,0 +1,244 @@ +好的,我来帮你系统梳理 **Python 类(class)** 的全部核心知识点,包括语法、属性、方法、继承、特殊方法等,适合作为 **Python 类的完整参考手册**。我会尽量详尽、条理清晰。 + +--- + +# Python 类(class)完整知识总结 + +--- + +## 1️⃣ 基础语法 + +```python +class ClassName(BaseClass): + """类的文档字符串""" + + class_attribute = 0 # 类属性 + + def __init__(self, arg1, arg2): + self.arg1 = arg1 # 实例属性 + self.arg2 = arg2 + + def method(self): + print(self.arg1, self.arg2) +``` + +* `class ClassName:` → 定义类 +* `BaseClass` → 可选,继承自父类 +* `__init__` → 构造函数(实例化时自动调用) +* `self` → 指向实例本身,必须作为实例方法的第一个参数 +* **类属性** → 所有实例共享 +* **实例属性** → 每个实例独立 + +--- + +## 2️⃣ 实例化和使用 + +```python +obj = ClassName(10, 20) +obj.method() # 调用实例方法 +print(obj.arg1) # 访问实例属性 +print(ClassName.class_attribute) # 访问类属性 +``` + +--- + +## 3️⃣ 类属性 vs 实例属性 + +```python +class Example: + class_var = 100 # 类属性 + + def __init__(self, x): + self.instance_var = x # 实例属性 + +e1 = Example(1) +e2 = Example(2) + +print(e1.class_var, e2.class_var) # 100 100 +print(e1.instance_var, e2.instance_var) # 1 2 +``` + +* 修改类属性:`Example.class_var = 200` +* 修改实例属性:`e1.instance_var = 10` + +--- + +## 4️⃣ 方法类型 + +| 方法类型 | 装饰器 | 特点 | +| ---- | --------------- | ----------------------- | +| 实例方法 | 无或 `@property` | 第一个参数是 `self`,只能通过实例调用 | +| 类方法 | `@classmethod` | 第一个参数是 `cls`,可以通过类或实例调用 | +| 静态方法 | `@staticmethod` | 无默认参数,可通过类或实例调用 | + +```python +class Demo: + class_var = 0 + + def instance_method(self): + print("实例方法", self.class_var) + + @classmethod + def class_method(cls): + print("类方法", cls.class_var) + + @staticmethod + def static_method(): + print("静态方法") +``` + +--- + +## 5️⃣ 继承与多态 + +```python +class Parent: + def greet(self): + print("Hello from Parent") + +class Child(Parent): + def greet(self): + print("Hello from Child") + +c = Child() +c.greet() # 输出 Child 的 greet → 多态 +``` + +* Python 支持 **单继承** 和 **多继承** +* `super()` 调用父类方法: + +```python +class Child(Parent): + def greet(self): + super().greet() # 调用父类方法 + print("Hello from Child") +``` + +--- + +## 6️⃣ 特殊方法(魔法方法) + +| 方法 | 功能 | +| ----------------------------------- | ------------------- | +| `__init__(self, ...)` | 构造函数 | +| `__str__(self)` | `print(obj)` 输出 | +| `__repr__(self)` | 交互式显示或 `repr(obj)` | +| `__len__(self)` | `len(obj)` | +| `__getitem__(self, key)` | 支持索引访问 `obj[key]` | +| `__setitem__(self, key, value)` | 支持索引赋值 | +| `__delitem__(self, key)` | 支持删除 `del obj[key]` | +| `__iter__(self)` / `__next__(self)` | 可迭代对象 | +| `__eq__`, `__lt__`, `__gt__`, ... | 支持比较运算符 | +| `__add__`, `__sub__`, ... | 支持运算符重载 | + +示例: + +```python +class Vector: + def __init__(self, x, y): + self.x = x + self.y = y + + def __add__(self, other): + return Vector(self.x + other.x, self.y + other.y) + + def __str__(self): + return f"Vector({self.x}, {self.y})" + +v1 = Vector(1,2) +v2 = Vector(3,4) +print(v1 + v2) # Vector(4,6) +``` + +--- + +## 7️⃣ 属性访问控制 + +Python 没有严格私有化,但通过命名约定控制访问: + +* 公有属性:`self.x` → 可在类外访问 +* 受保护属性:`self._x` → 建议类外少用 +* 私有属性:`self.__x` → 名字改写,类外不易访问 + +```python +class Test: + def __init__(self): + self.public = 1 + self._protected = 2 + self.__private = 3 + +t = Test() +print(t.public) # 1 +print(t._protected) # 2 +print(t._Test__private) # 3 → 私有属性访问技巧 +``` + +--- + +## 8️⃣ 属性装饰器(getter/setter) + +```python +class Person: + def __init__(self, name): + self._name = name + + @property + def name(self): # getter + return self._name + + @name.setter + def name(self, value): # setter + self._name = value + +p = Person("Alice") +print(p.name) +p.name = "Bob" +``` + +--- + +## 9️⃣ 类方法总结 + +* `self` → 实例方法,访问实例属性 +* `cls` → 类方法,访问类属性 +* 静态方法 → 无默认参数,可独立使用 +* `@property` → 用方法访问属性,控制读写 + +--- + +## 10️⃣ 进阶概念 + +* **多继承 & MRO(方法解析顺序)** + + * Python 按 **C3线性化算法** 决定方法调用顺序 +* **组合 vs 继承** + + * 类可以包含其他类实例,实现复合功能 +* **抽象类 & 接口** + +```python +from abc import ABC, abstractmethod + +class Shape(ABC): + @abstractmethod + def area(self): + pass +``` + +--- + +## 11️⃣ Python 类的总结 + +1. **定义与实例化** → class + **init** + self +2. **属性** → 类属性 vs 实例属性 +3. **方法** → 实例方法 / 类方法 / 静态方法 +4. **继承与多态** → super() 调用父类方法 +5. **特殊方法** → 魔法方法,实现运算符、索引、迭代等 +6. **访问控制** → 公有 / 受保护 / 私有 +7. **装饰器** → @property 控制访问 + +--- + +我可以帮你画一张 **Python 类知识全景图**,把 **类结构、属性、方法、继承、魔法方法、访问控制、装饰器** 全部整理成一张图,非常直观易记。 + +你希望我画吗? diff --git a/Packages/StandardLibrary/readme.md b/Packages/StandardLibrary/readme.md new file mode 100644 index 0000000..b5a6c85 --- /dev/null +++ b/Packages/StandardLibrary/readme.md @@ -0,0 +1,166 @@ +好的,我来帮你整理一份 **Python 标准库(Standard Library)详细概览**,按照用途分类,包含核心模块、功能和简单示例,方便快速了解。 + +Python 标准库是 **Python 自带的模块集合**,无需额外安装即可使用。 + +--- + +# 1️⃣ 操作系统与文件 + +| 模块 | 功能 | 示例 | +| ---------- | ---------------- | ------------------------------------------- | +| `os` | 系统操作、文件路径、环境变量 | `import os; os.listdir('.')` | +| `sys` | Python 解释器相关信息 | `import sys; sys.argv` | +| `shutil` | 高级文件操作(复制、移动、删除) | `import shutil; shutil.copy('a','b')` | +| `pathlib` | 面向对象的路径操作 | `from pathlib import Path; p = Path('.')` | +| `tempfile` | 临时文件和目录 | `import tempfile; tempfile.TemporaryFile()` | +| `glob` | 文件通配符匹配 | `import glob; glob.glob('*.py')` | + +--- + +# 2️⃣ 数据类型与容器 + +| 模块 | 功能 | 示例 | +| ------------- | --------------------------------------------------------- | --------------------------------------------------- | +| `collections` | 高级容器类型,如 `Counter`, `deque`, `OrderedDict`, `defaultdict` | `from collections import Counter; Counter([1,2,2])` | +| `array` | 高效数值数组 | `from array import array; a = array('i',[1,2,3])` | +| `heapq` | 堆操作 | `import heapq; heapq.heappush(heap, x)` | +| `bisect` | 有序列表插入和查找 | `import bisect; bisect.insort(lst, 5)` | +| `queue` | 线程安全队列 | `from queue import Queue; q = Queue()` | + +--- + +# 3️⃣ 数学与科学计算 + +| 模块 | 功能 | 示例 | +| ------------ | ------- | --------------------------------------------------------------- | +| `math` | 数学函数 | `import math; math.sqrt(16)` | +| `cmath` | 复数数学函数 | `import cmath; cmath.sqrt(-1)` | +| `decimal` | 高精度浮点运算 | `from decimal import Decimal; Decimal('1.1') + Decimal('2.2')` | +| `fractions` | 分数运算 | `from fractions import Fraction; Fraction(1,3) + Fraction(2,3)` | +| `random` | 随机数生成 | `import random; random.randint(1,10)` | +| `statistics` | 基本统计函数 | `import statistics; statistics.mean([1,2,3])` | + +--- + +# 4️⃣ 文本处理 + +| 模块 | 功能 | 示例 | +| ------------- | ------------ | ------------------------------------------------------- | +| `re` | 正则表达式 | `import re; re.findall(r'\d+', 'abc123')` | +| `string` | 字符串常量与模板 | `import string; string.ascii_letters` | +| `textwrap` | 文本换行与缩进 | `import textwrap; textwrap.fill("long text", width=20)` | +| `unicodedata` | Unicode 字符属性 | `import unicodedata; unicodedata.name('中')` | +| `codecs` | 编码解码 | `import codecs; codecs.encode("abc","utf-8")` | + +--- + +# 5️⃣ 数据持久化与格式 + +| 模块 | 功能 | 示例 | +| ----------------------- | ------------- | ------------------------------------------------------- | +| `json` | JSON 序列化与反序列化 | `import json; json.loads('{"a":1}')` | +| `pickle` | Python 对象序列化 | `import pickle; pickle.dump(obj,f)` | +| `shelve` | 类似字典的文件存储 | `import shelve; db = shelve.open('data')` | +| `csv` | CSV 文件读写 | `import csv; reader = csv.reader(f)` | +| `configparser` | 配置文件解析 | `import configparser; config.read('config.ini')` | +| `xml.etree.ElementTree` | XML 解析 | `import xml.etree.ElementTree as ET; ET.parse('a.xml')` | + +--- + +# 6️⃣ 日期与时间 + +| 模块 | 功能 | 示例 | +| ---------- | ------- | ----------------------------------------------- | +| `datetime` | 日期和时间处理 | `from datetime import datetime; datetime.now()` | +| `time` | 时间戳、延时 | `import time; time.sleep(1)` | +| `calendar` | 日历相关 | `import calendar; calendar.month(2025,9)` | + +--- + +# 7️⃣ 网络与互联网 + +| 模块 | 功能 | 示例 | +| ------------- | --------- | ---------------------------------------------------------------------- | +| `socket` | 网络通信 | `import socket; s = socket.socket()` | +| `http.client` | HTTP 客户端 | `import http.client; conn = http.client.HTTPConnection('example.com')` | +| `urllib` | URL 处理、请求 | `from urllib import request; request.urlopen('http://example.com')` | +| `ftplib` | FTP 协议 | `from ftplib import FTP; ftp = FTP('host')` | +| `smtplib` | 发送邮件 | `import smtplib; server = smtplib.SMTP('smtp.example.com')` | +| `email` | 邮件解析和构建 | `from email.mime.text import MIMEText` | + +--- + +# 8️⃣ 并发与多线程 + +| 模块 | 功能 | 示例 | +| -------------------- | ------ | --------------------------------------------------------------- | +| `threading` | 多线程 | `import threading; t = threading.Thread(target=func)` | +| `multiprocessing` | 多进程 | `from multiprocessing import Process; p = Process(target=func)` | +| `asyncio` | 异步编程 | `import asyncio; asyncio.run(main())` | +| `concurrent.futures` | 线程/进程池 | `from concurrent.futures import ThreadPoolExecutor` | +| `queue` | 线程安全队列 | `from queue import Queue` | + +--- + +# 9️⃣ 调试与开发工具 + +| 模块 | 功能 | 示例 | +| ----------- | ------ | ------------------------------------------ | +| `logging` | 日志记录 | `import logging; logging.info("msg")` | +| `pdb` | 调试 | `import pdb; pdb.set_trace()` | +| `traceback` | 异常堆栈信息 | `import traceback; traceback.format_exc()` | +| `warnings` | 警告控制 | `import warnings; warnings.warn("msg")` | +| `inspect` | 查看对象信息 | `import inspect; inspect.getmembers(obj)` | + +--- + +# 10️⃣ 压缩与归档 + +| 模块 | 功能 | 示例 | +| --------- | -------- | ------------------------------------------ | +| `zipfile` | ZIP 文件读写 | `import zipfile; zipfile.ZipFile('a.zip')` | +| `tarfile` | TAR 文件读写 | `import tarfile; tarfile.open('a.tar.gz')` | +| `gzip` | Gzip 压缩 | `import gzip; gzip.open('a.gz','rb')` | +| `bz2` | bzip2 压缩 | `import bz2` | +| `lzma` | lzma 压缩 | `import lzma` | + +--- + +# 11️⃣ 其他常用 + +| 模块 | 功能 | 示例 | +| ----------- | -------- | ----------------------------------------------------- | +| `uuid` | UUID 生成 | `import uuid; uuid.uuid4()` | +| `hashlib` | 哈希算法 | `import hashlib; hashlib.md5(b'abc').hexdigest()` | +| `hmac` | HMAC 校验 | `import hmac` | +| `enum` | 枚举类型 | `from enum import Enum` | +| `functools` | 函数工具,如缓存 | `from functools import lru_cache` | +| `itertools` | 高级迭代工具 | `import itertools; itertools.combinations([1,2,3],2)` | + +--- + +## 🔹 总结 + +Python 标准库非常丰富,可以大体分类为: + +1. **系统与文件** → os, sys, pathlib, shutil, tempfile +2. **数据结构与容器** → collections, array, heapq, queue +3. **数学与统计** → math, cmath, decimal, fractions, random, statistics +4. **文本处理** → re, string, textwrap, codecs, unicodedata +5. **数据存储与格式** → json, pickle, shelve, csv, configparser, xml +6. **日期与时间** → datetime, time, calendar +7. **网络与互联网** → socket, urllib, http.client, ftplib, smtplib, email +8. **并发与异步** → threading, multiprocessing, asyncio, concurrent.futures +9. **调试与开发** → logging, pdb, traceback, inspect +10. **压缩与归档** → zipfile, tarfile, gzip, bz2, lzma +11. **其他工具** → uuid, hashlib, hmac, enum, functools, itertools + +--- + +💡 提示:Python 官方文档有 **完整标准库参考**,可直接查阅每个模块的 API。 + +--- + +我可以帮你画一张 **Python 标准库分类全景图**,把模块按功能归类,直观展示,非常适合学习和查阅。 + +你希望我画吗? diff --git a/Packages/readme.md b/Packages/readme.md new file mode 100644 index 0000000..4cf6ea6 --- /dev/null +++ b/Packages/readme.md @@ -0,0 +1,111 @@ +好的,我给你整理一份 **Python 常用第三方包和标准库简介**,按用途分类,包含功能和简单示例,方便你快速了解和查阅。 + +--- + +# 1️⃣ 科学计算与数据分析 + +| 包名 | 功能 | 示例 | +| -------------- | -------------------- | ----------------------------------------------------- | +| **NumPy** | 高性能数组运算、矩阵运算 | `import numpy as np; a = np.array([1,2,3])` | +| **Pandas** | 数据处理与分析,DataFrame 操作 | `import pandas as pd; df = pd.DataFrame({'a':[1,2]})` | +| **SciPy** | 科学计算函数库,线性代数、优化、信号处理 | `from scipy import optimize; optimize.minimize(...)` | +| **Matplotlib** | 数据可视化,绘图 | `import matplotlib.pyplot as plt; plt.plot([1,2,3])` | +| **Seaborn** | 高级可视化,基于 Matplotlib | `import seaborn as sns; sns.heatmap(data)` | + +--- + +# 2️⃣ 机器学习与深度学习 + +| 包名 | 功能 | 示例 | +| ---------------------- | ------------------ | ----------------------------------------------------- | +| **scikit-learn** | 经典机器学习算法 | `from sklearn.ensemble import RandomForestClassifier` | +| **TensorFlow** | 深度学习框架 | `import tensorflow as tf; tf.constant([1,2])` | +| **PyTorch** | 深度学习框架,动态图 | `import torch; x = torch.tensor([1,2])` | +| **Keras** | 高级神经网络接口(常与 TF 搭配) | `from keras.models import Sequential` | +| **XGBoost / LightGBM** | 提升树算法,常用于 Kaggle | `import xgboost as xgb` | + +--- + +# 3️⃣ 数据获取与处理 + +| 包名 | 功能 | 示例 | +| ----------------- | ---------------- | ------------------------------------------------------------------------- | +| **requests** | HTTP 请求 | `import requests; r = requests.get(url)` | +| **BeautifulSoup** | HTML / XML 解析 | `from bs4 import BeautifulSoup; soup = BeautifulSoup(html,'html.parser')` | +| **lxml** | 高效 HTML / XML 解析 | `from lxml import etree` | +| **json** | JSON 数据处理(标准库) | `import json; data = json.loads(json_str)` | +| **csv** | CSV 文件操作(标准库) | `import csv; reader = csv.reader(f)` | + +--- + +# 4️⃣ 系统与文件操作 + +| 包名 | 功能 | 示例 | +| -------------- | ------------------ | ------------------------------------------- | +| **os** | 系统操作、文件路径(标准库) | `import os; os.listdir('.')` | +| **sys** | Python 解释器相关操作 | `import sys; sys.argv` | +| **shutil** | 高级文件操作,如复制、移动 | `import shutil; shutil.copy('a','b')` | +| **pathlib** | 面向对象的路径操作(Python3) | `from pathlib import Path; p = Path('.')` | +| **subprocess** | 执行外部命令 | `import subprocess; subprocess.run(['ls'])` | + +--- + +# 5️⃣ Web 开发 + +| 包名 | 功能 | 示例 | +| ------------ | ---------- | ------------------------------------------------ | +| **Flask** | 轻量 Web 框架 | `from flask import Flask; app = Flask(__name__)` | +| **Django** | 全功能 Web 框架 | `django-admin startproject mysite` | +| **FastAPI** | 高性能 API 框架 | `from fastapi import FastAPI; app = FastAPI()` | +| **requests** | HTTP 客户端 | 同上 | + +--- + +# 6️⃣ 图像与多媒体处理 + +| 包名 | 功能 | 示例 | +| --------------------- | ------ | -------------------------------------------------- | +| **Pillow** | 图像处理 | `from PIL import Image; img = Image.open('a.jpg')` | +| **OpenCV (cv2)** | 计算机视觉 | `import cv2; img = cv2.imread('a.jpg')` | +| **matplotlib.pyplot** | 简单图像显示 | `plt.imshow(img)` | + +--- + +# 7️⃣ 常用工具库 + +| 包名 | 功能 | 示例 | +| ------------- | -------- | ----------------------------------------------------- | +| **re** | 正则表达式 | `import re; re.findall(r'\d+', 'abc123')` | +| **datetime** | 日期与时间处理 | `import datetime; datetime.datetime.now()` | +| **random** | 随机数 | `import random; random.randint(1,10)` | +| **itertools** | 高级迭代工具 | `import itertools; itertools.combinations([1,2,3],2)` | +| **functools** | 函数工具,如缓存 | `from functools import lru_cache` | + +--- + +# 8️⃣ 数据序列化与持久化 + +| 包名 | 功能 | 示例 | +| ---------- | ------------ | ----------------------------------------- | +| **pickle** | Python 对象序列化 | `import pickle; pickle.dump(obj,f)` | +| **shelve** | 类似字典的简单数据库 | `import shelve; db = shelve.open('data')` | +| **json** | JSON 序列化 | 同上 | + +--- + +# 🔹 总结 + +1. **科学计算** → NumPy, Pandas, SciPy, Matplotlib, Seaborn +2. **机器学习/深度学习** → scikit-learn, TensorFlow, PyTorch, Keras, XGBoost +3. **数据获取** → requests, BeautifulSoup, lxml, json, csv +4. **系统/文件操作** → os, sys, shutil, pathlib, subprocess +5. **Web 开发** → Flask, Django, FastAPI +6. **图像处理** → Pillow, OpenCV +7. **工具函数** → re, datetime, random, itertools, functools +8. **数据持久化** → pickle, shelve, json + +--- + +我可以帮你画一张 **Python 常用包分类全景图**,把这些包按用途分层,直观展示,方便快速记忆。 + +你希望我画吗?