随笔分类 -  python

摘要:生成性能分析结果文件 python -m cProfile -o output.prof test.py # output.prof就是性能分析结果文件 # test.py表示运行的python文件 安装snakeviz可视化工具 pip install snakeviz 打开性能分析结果文件 sn 阅读全文
posted @ 2025-09-23 16:10 CJTARRR 阅读(3) 评论(0) 推荐(0)
摘要:安装Cython pip install Cython 使用演示 编写Cython版本代码, 文件名:fib_cy.pyx cpdef int fib_cy(int n): if n <= 1: return n else: return fib_cy(n-1) + fib_cy(n-2) 编写Py 阅读全文
posted @ 2025-09-23 11:41 CJTARRR 阅读(5) 评论(0) 推荐(0)
摘要:1.项目根目录下,跨越第一层包的调用使用绝对导入。 2.在同一个包的子包之间,使用相对导入。 3.包内模块调试,在根目录中使用"python -m parent.sub.filename" 4.入口文件放到根目录下。 5.入口文件开头添加如下代码,将根目录添加到sys.path中。 import o 阅读全文
posted @ 2025-09-22 17:04 CJTARRR 阅读(3) 评论(0) 推荐(0)
摘要:作用 在python中,存在__init__.py的文件夹被认为是包。 __init__.py文件一般用来加载包内代码依赖资源和设定包的导出行为。 执行时机 第一次通过"import xxx"或"from xxx import yyy"的方式, 导入包、包内文件、包内代码时,会自动执行包的__ini 阅读全文
posted @ 2025-09-22 14:19 CJTARRR 阅读(4) 评论(0) 推荐(0)
摘要:安装 pip install numba 使用示例 import time from numba import jit # 原始函数 def python_sum(n): total = 0 for i in range(n): total += i return total # Numba 加速版 阅读全文
posted @ 2025-09-18 14:39 CJTARRR 阅读(11) 评论(0) 推荐(0)
摘要:作用 缓存不同参数组合的计算结果,命中缓存可以直接返回结果。 使用示例 import time from functools import lru_cache @lru_cache(maxsize=128) # 指定128个不同参数组合的调用结果,lru策略,设置为None表示无上限 def tes 阅读全文
posted @ 2025-09-18 14:11 CJTARRR 阅读(5) 评论(0) 推荐(0)
摘要:安装rich库 pip install rich 使用示例 from rich.pretty import pprint as rich_print app_env = "prod" # 环境标识 dev_env = {"dev", "test"} # 开发/测试环境标识 def mprint(*a 阅读全文
posted @ 2025-09-18 13:40 CJTARRR 阅读(11) 评论(0) 推荐(0)
摘要:作用 固定函数参数,在原函数基础上创建新函数。 举例 """ 偏函数 """ from functools import partial from typing import Callable def multiply(x: int, y: int) -> int: return x * y # 将 阅读全文
posted @ 2025-09-06 15:57 CJTARRR 阅读(5) 评论(0) 推荐(0)
摘要:安装依赖 annotated-types==0.7.0 anyio==4.6.2 asyncmy==0.2.10 click==8.1.8 exceptiongroup==1.3.0 fastapi==0.116.1 greenlet==3.1.1 h11==0.16.0 idna==3.10 py 阅读全文
posted @ 2025-08-28 15:30 CJTARRR 阅读(26) 评论(0) 推荐(0)
摘要:1.安装gunicorn pip install gunicorn 2.gunicorn启动配置, # gunicorn_conf.py """ gunicorn启动配置 配合uvicorn启动 """ import multiprocessing # 绑定地址和端口 bind = "127.0.0 阅读全文
posted @ 2025-08-25 10:12 CJTARRR 阅读(52) 评论(0) 推荐(0)
摘要:1.nvidia driver + cuda 下载版本匹配的driver和cuda toolkit并安装,精简安装,完全按照指示安装就行。 查看driver和cuda对应关系: https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index 阅读全文
posted @ 2025-08-23 10:12 CJTARRR 阅读(48) 评论(0) 推荐(0)
摘要:示例代码: import json import os import pickle from typing import Any, Dict, List, Optional, Tuple import numpy as np import torch from langchain.callbacks 阅读全文
posted @ 2025-08-22 14:33 CJTARRR 阅读(10) 评论(0) 推荐(0)
摘要:1.参考文档(langchain中文开发教程) https://liaokong.gitbook.io/llm-kai-fa-jiao-cheng/ 2.安装依赖 pip install torch transformers langchain loguru scikit-learn numpy s 阅读全文
posted @ 2025-08-22 14:31 CJTARRR 阅读(20) 评论(0) 推荐(0)
摘要:from typing import List a: List["Test"] = [] class Test: pass # Test的定义在a类型标注的后面,所以如果直接写Test类型会报错,可以用双引号括起来,就能正常解析. 如果是python 3.7+,可以也可以用下面这种方式解决 from 阅读全文
posted @ 2025-07-24 15:26 CJTARRR 阅读(10) 评论(0) 推荐(0)
摘要:1.介绍 弱引用字典的键或值可以在没有被强引用的情况下,被GC回收. 弱键引用字典: weakref.WeakKeyDictionary(),键没有被强引用的情况下,可以被回收. 弱值引用字典: weakref.WeakValueDictionary(),值没有被强引用的情况下,可以被回收. 2.使 阅读全文
posted @ 2025-07-24 12:54 CJTARRR 阅读(5) 评论(0) 推荐(0)
摘要:def test(c, d, *, a=1, b): print(a) print(b) print(c) print(d) test(1, 2, b=4, a=5) """ 输出: 5 4 1 2 """ "*"分隔形参, 后面的参数就是"仅关键词参数", 意思是必须通过关键词传递. "*"前面可 阅读全文
posted @ 2025-07-23 17:47 CJTARRR 阅读(4) 评论(0) 推荐(0)
摘要:def append_to_mylist(item, my_list=[]): my_list.append(item) return my_list print(append_to_mylist(1)) print(append_to_mylist(1)) print(append_to_myli 阅读全文
posted @ 2025-07-21 15:03 CJTARRR 阅读(9) 评论(0) 推荐(0)
摘要:class Test: def __getattr__(self, item): """ 当访问不存在属性时调用 :param item: :return: """ print(f"获取{item}属性-2") # 仅属性不存在时调用,优先级低于__getattribute__ raise Attr 阅读全文
posted @ 2025-07-21 14:35 CJTARRR 阅读(5) 评论(0) 推荐(0)
摘要:class Desc: def __init__(self, name: str): self.name = name def __get__(self, instance, owner): """ self 描述符自身 instance 拥有描述符的实例,即描述符所挂载的类所创建的实例;直接通过类 阅读全文
posted @ 2025-07-21 13:49 CJTARRR 阅读(17) 评论(0) 推荐(0)
摘要:1.前置知识,可变类型和不可变类型 不可变类型: 不可变类型对象一旦创建,其值不可修改.任何修改操作实际会创建新的对象,原对象会保持不变. 整数/浮点数/复数/字符串/元组/布尔值,元组本身是不可变的,但是如果包含可变元组(如列表),其内容可被间接修改. 可变类型: 可变类型对象可以直接修改,内存地 阅读全文
posted @ 2025-07-18 12:29 CJTARRR 阅读(7) 评论(0) 推荐(0)