
python集
文章平均质量分 89
网罗开发
华为HDE,大学讲师,开源创新毕业设计导师,Swift社区主理人,COC上海社区主理人,优快云博客专家。
《SwiftUI 入门,进阶与实战》 作者
《ESP32-C3 物联网工程开发实战》作者
全网 10万+ 粉丝, 欢迎您的关注与支持。交流合作私信+
展开
-
10分钟复现一个线上 Bug:从数据裁剪到 Mock 技巧全解析
遇到那些偶发性、难以稳定复现的 Bug,调试过程常常像是在黑暗中摸索。我们总希望“一步到位”定位问题,但如果连重现都做不到,谈何修复?本文围绕“最小化复现”展开,系统介绍从数据裁剪、Mock 替换,到事件录制和回放等实用技巧,并结合可运行 Demo 帮助开发者掌握复现偶发现象的核心能力。原创 2025-05-26 23:05:04 · 1180 阅读 · 0 评论 -
为什么你系统一出问题就是“全链路崩”?问题可能在这里
在微服务架构中,服务间的调用链常常是一荣俱荣、一损俱损。如果某个下游服务不稳定,可能整个调用链都会被拖垮,最终演变成“服务雪崩”。服务依赖复杂时,如何识别并隔离故障?我们会结合真实业务案例,引出“舱壁模式”的概念,并通过 Python Demo 展示如何利用线程池做资源隔离,最终构建一个“核心服务不被拉下水”的健壮系统。简单说,就是一个服务挂了,其他服务也跟着挂。下游接口慢,主线程卡死;重试机制没控制好,请求打满线程池;所有服务共享一个连接池,某个服务占满后其他服务用不了。原创 2025-05-07 21:15:50 · 862 阅读 · 0 评论 -
从抽象地狱逃出来:一段 Python 代码看清“过度设计”的代价
你可能见过这样的项目:刚起步就整上微服务框架、Kafka 消息中间件一把梭,再加上好几层抽象工厂 + 策略模式。等上线后才发现,系统只有两三个接口,压根没人用。这些“自我感动式”的开发,其实是一种隐形浪费。它不是技术能力的展现,而是一种“过度假设未来”的风险决策。本文就来聊聊,怎么在架构设计中避免掉进“过度工程”的坑,选对“当下最合适”的解法。架构设计的终极目标,不是“用最炫的技术”,而是“用最低的成本,跑通正确的业务”。一个好的工程师,不是技术最潮的那一个,而是能判断什么时间该用什么设计的那一个。原创 2025-05-06 23:40:13 · 1575 阅读 · 0 评论 -
「MySQL 数据库优化」降低存储与查询成本的最佳实践
数据库存储和查询成本高,特别是数据量大的企业面临巨大的挑战。本篇文章将探讨索引优化、减少冗余数据、冷热存储管理以及缓存(Redis、CDN)在优化数据库访问中的作用。通过实际示例,帮助企业优化数据库性能,降低成本。索引优化可提高查询速度,避免冗余索引。减少冗余数据,采用数据规范化和去重策略。冷热数据管理,优化存储成本。缓存(Redis、CDN)降低数据库查询压力。✅自动化数据库优化策略(AI 驱动索引优化)✅结合大数据技术(如 Apache Spark)进行冷热数据管理✅。原创 2025-03-10 23:48:02 · 1999 阅读 · 0 评论 -
ArgoCD实战指南:GitOps驱动下的Kubernetes自动化部署与Helm/Kustomize集成
ArgoCD 是一种 GitOps 持续交付工具,专为 Kubernetes 设计。它能够自动同步 Git 仓库中的声明性配置,并将其应用到 Kubernetes 集群中。本文将介绍ArgoCD 的架构、安装步骤,以及如何结合Helm 和 Kustomize进行 Kubernetes 自动化部署。ArgoCD 是强大的 GitOps 解决方案,可提高 Kubernetes 资源管理效率。结合 Helm 和 Kustomize,可以实现更灵活的自动化部署。需要正确配置权限管理,确保安全性。未来展望✅。原创 2025-02-08 17:50:38 · 1048 阅读 · 0 评论 -
【GitLab CI/CD 实践】从 0 到 1 搭建高效自动化部署流程
GitLab CI/CD 是 GitLab 内置的持续集成和持续部署(CI/CD)工具,它可以帮助开发团队自动化代码测试、构建和部署。本指南将介绍如何使用 GitLab CI/CD 搭建完整的自动化部署流程,包括配置文件的编写、Stages、Jobs、Artifacts 以及 Runner 的使用。GitLab CI/CD 提供了一种高效的自动化部署方式,能够帮助团队提高开发效率和代码质量。本文介绍了 GitLab CI/CD 的基本概念、配置、Runner 的使用以及 Artifacts 处理方式。原创 2025-02-07 14:34:20 · 1372 阅读 · 0 评论 -
如何科学评估与选择新版本 Python 编程语言和工具
随着技术的快速发展,编程语言和软件工具不断推出新版本,带来了诸多新功能和改进。然而,选择是否采用这些更新涉及多个方面:项目兼容性、性能提升、学习成本等。本文将探讨如何科学地评估新版本的适用性,提出具体的选择标准,并展示通过 Demo 如何有效利用新版本的功能提升开发效率。通过科学评估新版本的功能改进、兼容性及团队适配性,开发者可以更高效地选择合适的技术工具和语言版本。利用实际项目示例可以快速验证新版本的优势,为团队协作和项目交付带来更多价值。评估维度内容功能改进新功能是否符合项目需求?解决了哪些问题?原创 2025-01-02 23:34:17 · 1367 阅读 · 0 评论 -
用 Python 格式化器重新定义用户体验
开发者工具的用户体验(UX)对其使用率和成功与否至关重要。功能复杂的工具若缺乏良好的用户体验,往往会使开发者难以适应。本文章分享了优化开发者工具 UX 的原则与实践,并以 Python 示例代码演示了如何通过设计直观的交互界面和简洁的 API 提升用户体验。本文通过一个简单的代码格式化工具演示了如何优化开发者工具的用户体验。通过直观的 API 和灵活的配置选项,工具既能满足初学者的需求,又具备高扩展性。未来,结合人工智能技术(如智能代码补全),开发者工具的 UX 有望进一步提升。原创 2024-12-14 23:32:00 · 1252 阅读 · 0 评论 -
python 常用内建模块之collections
python学习笔记,特做记录,分享给大家,希望对大家有所帮助。collections是Python内建的一个集合模块,提供了许多有用的集合类。namedtuple我们知道tuple可以表示不变集合,例如,一个点的二维坐标就可以表示成:p = (1, 2)但是,看到(1, 2),很难看出这个tuple是用来表示一个坐标的。定义一个class又小题大做了,这时,namedtuple就派...原创 2019-11-26 17:14:02 · 232 阅读 · 0 评论 -
python 常用内建模块之datetime
python学习笔记,特做记录,分享给大家,希望对大家有所帮助。datetime是Python处理日期和时间的标准库。获取当前日期和时间我们先看如何获取当前日期和时间:from datetime import datetime# 获取当前datetimenow = datetime.now()print nowprint type(now)运行结果:2019-07-15 1...原创 2019-11-15 15:05:44 · 164 阅读 · 0 评论 -
python 进程和线程之正则表达式
python学习笔记,特做记录,分享给大家,希望对大家有所帮助。正则表达式字符串是编程时涉及到的最多的一种数据结构,对字符串进行操作的需求几乎无处不在。比如判断一个字符串是否是合法的Email地址,虽然可以编程提取@前后的子串,再分别判断是否是单词和域名,但这样做不但麻烦,而且代码难以复用。正则表达式是一种用来匹配字符串的强有力的武器。它的设计思想是用一种描述性的语言来给字符串定义一个规则,...原创 2019-11-06 09:37:12 · 216 阅读 · 0 评论 -
python 面向对象编程之访问限制
python学习笔记,特做记录,分享给大家,希望对大家有所帮助。访问限制在Class内部,可以有属性和方法,而外部代码可以通过直接调用实例变量的方法来操作数据,这样,就隐藏了内部的复杂逻辑。但是,从前面Student类的定义来看,外部代码还是可以自由地修改一个实例的name、score属性:bart = Student('Bart Simpson', 59)print bart.scor...原创 2019-07-17 16:25:15 · 229 阅读 · 0 评论 -
python 面向对象编程之类和实例
python学习笔记,特做记录,分享给大家,希望对大家有所帮助。类和实例面向对象最重要的概念就是类(Class)和实例(Instance),必须牢记类是抽象的模板,比如Student类,而实例是根据类创建出来的一个个具体的“对象”,每个对象都拥有相同的方法,但各自的数据可能不同。仍以Student类为例,在Python中,定义类是通过class关键字:class Student(objec...原创 2019-07-17 16:22:59 · 285 阅读 · 0 评论 -
python 面向对象编程之继承和多态
python学习笔记,特做记录,分享给大家,希望对大家有所帮助。继承和多态在OOP程序设计中,当我们定义一个class的时候,可以从某个现有的class继承,新的class称为子类(Subclass),而被继承的class称为基类、父类或超类(Base class、Super class)。比如,我们已经编写了一个名为Animal的class,有一个run()方法可以直接打印:class ...原创 2019-07-17 16:26:04 · 281 阅读 · 0 评论 -
python IO编程之StringIO和BytesIO
python学习笔记,特做记录,分享给大家,希望对大家有所帮助。StringIO很多时候,数据读写不一定是文件,也可以在内存中读写。StringIO顾名思义就是在内存中读写str。要把str写入StringIO,我们需要先创建一个StringIO,然后,像文件一样写入即可:from io import StringIOf = StringIO()print f.write('hell...原创 2019-07-19 16:30:44 · 263 阅读 · 0 评论 -
python 进程和线程之进程 vs. 线程
python学习笔记,特做记录,分享给大家,希望对大家有所帮助。进程 vs. 线程我们介绍了多进程和多线程,这是实现多任务最常用的两种方式。现在,我们来讨论一下这两种方式的优缺点。首先,要实现多任务,通常我们会设计Master-Worker模式,Master负责分配任务,Worker负责执行任务,因此,多任务环境下,通常是一个Master,多个Worker。如果用多进程实现Master-W...原创 2019-09-30 11:08:55 · 185 阅读 · 0 评论 -
python IO编程之文件读写
python学习笔记,特做记录,分享给大家,希望对大家有所帮助。文件读写读写文件是最常见的IO操作。Python内置了读写文件的函数,用法和C是兼容的。读写文件前,我们先必须了解一下,在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘,所以,读写文件就是请求操作系统打开一个文件对象(通常称为文件描述符),然后,通过操作系统提供的接口从这个文件对象中读取数据(...原创 2019-07-19 16:29:58 · 285 阅读 · 0 评论 -
python 面向对象编程之获取对象信息
python学习笔记,特做记录,分享给大家,希望对大家有所帮助。获取对象信息当我们拿到一个对象的引用时,如何知道这个对象是什么类型、有哪些方法呢?使用type()首先,我们来判断对象类型,使用type()函数:基本类型都可以用type()判断:print type(1234)print type('str')print type(None)运行结果:<type 'int...原创 2019-07-17 16:27:30 · 297 阅读 · 0 评论 -
python IO编程之操作文件和目录
python学习笔记,特做记录,分享给大家,希望对大家有所帮助。操作文件和目录如果我们要操作文件、目录,可以在命令行下面输入操作系统提供的各种命令来完成。比如dir、cp等命令。如果要在Python程序中执行这些目录和文件的操作怎么办?其实操作系统提供的命令只是简单地调用了操作系统提供的接口函数,Python内置的os模块也可以直接调用操作系统提供的接口函数。打开Python交互式命令行,...原创 2019-08-14 16:51:46 · 224 阅读 · 0 评论 -
python 进程和线程之多线程
python学习笔记,特做记录,分享给大家,希望对大家有所帮助。多线程多任务可以由多进程完成,也可以由一个进程内的多线程完成。我们前面提到了进程是由若干线程组成的,一个进程至少有一个线程。由于线程是操作系统直接支持的执行单元,因此,高级语言通常都内置多线程的支持,Python也不例外,并且,Python的线程是真正的Posix Thread,而不是模拟出来的线程。Python的标准库提供...原创 2019-08-20 11:19:42 · 295 阅读 · 0 评论 -
python IO编程之序列化
python学习笔记,特做记录,分享给大家,希望对大家有所帮助。序列化在程序运行的过程中,所有的变量都是在内存中,比如,定义一个dict:d = dict(name='Bob', age=20, score=88)可以随时修改变量,比如把name改成’Bill’,但是一旦程序结束,变量所占用的内存就被操作系统全部回收。如果没有把修改后的’Bill’存储到磁盘上,下次重新运行程序,变量又被...原创 2019-08-15 11:34:39 · 187 阅读 · 0 评论 -
python 进程和线程之多进程
python学习笔记,特做记录,分享给大家,希望对大家有所帮助。多进程要让Python程序实现多进程(multiprocessing),我们先了解操作系统的相关知识。Unix/Linux操作系统提供了一个fork()系统调用,它非常特殊。普通的函数调用,调用一次,返回一次,但是fork()调用一次,返回两次,因为操作系统自动把当前进程(称为父进程)复制了一份(称为子进程),然后,分别在父进程...原创 2019-08-15 11:35:45 · 168 阅读 · 0 评论 -
python 进程和线程之ThreadLocal
python学习笔记,特做记录,分享给大家,希望对大家有所帮助。ThreadLocal在多线程环境下,每个线程都有自己的数据。一个线程使用自己的局部变量比使用全局变量好,因为局部变量只有线程自己能看见,不会影响其他线程,而全局变量的修改必须加锁。但是局部变量也有问题,就是在函数调用的时候,传递起来很麻烦:def process_student(name): std = Studen...原创 2019-08-21 17:41:01 · 249 阅读 · 0 评论 -
python 进程和线程之分布式进程
python学习笔记,特做记录,分享给大家,希望对大家有所帮助。分布式进程在Thread和Process中,应当优选Process,因为Process更稳定,而且,Process可以分布到多台机器上,而Thread最多只能分布到同一台机器的多个CPU上。Python的multiprocessing模块不但支持多进程,其中managers子模块还支持把多进程分布到多台机器上。一个服务进程可以作...原创 2019-10-08 14:59:06 · 234 阅读 · 0 评论 -
python 函数的可变参数
python学习笔记,特做记录,分享给大家,希望对大家有所帮助。可变参数在Python函数中,还可以定义可变参数。顾名思义,可变参数就是传入的参数个数是可变的,可以是1个、2个到任意个,还可以是0个。我们以数学题为例子,给定一组数字a,b,c……,请计算a2 + b2 + c2 + ……。在定义函数之前需要先引入math包,并允许后续代码引用math包里的sin、cos等函数:impor...原创 2019-04-19 14:16:37 · 1145 阅读 · 0 评论 -
python 面向对象高级编程之使用元类
python学习笔记,特做记录,分享给大家,希望对大家有所帮助。type()动态语言和静态语言最大的不同,就是函数和类的定义,不是编译时定义的,而是运行时动态创建的。比方说我们要定义一个Hello的class,就写一个hello.py模块:class Hello(object): def hello(self, name='world'): print('Hello...原创 2019-07-19 16:29:09 · 234 阅读 · 0 评论 -
python 面向对象高级编程之使用枚举类
python学习笔记,特做记录,分享给大家,希望对大家有所帮助。使用枚举类当我们需要定义常量时,一个办法是用大写变量通过整数来定义,例如月份:JAN = 1FEB = 2MAR = 3...NOV = 11DEC = 12好处是简单,缺点是类型是int,并且仍然是变量。更好的方法是为这样的枚举类型定义一个class类型,然后,每个常量都是class的一个唯一实例。Python...原创 2019-07-19 16:28:20 · 262 阅读 · 0 评论 -
python 模块的使用
python学习笔记,特做记录,分享给大家,希望对大家有所帮助。模块使用Python本身就内置了很多非常有用的模块,只要安装完毕,这些模块就可以立刻使用。我们以内建的sys模块为例,编写一个fbyHello的模块:#!/usr/bin/env python2# -*- coding: utf-8 -*-' a test module '__author__ = 'Zhan Fei...原创 2019-07-16 16:40:45 · 258 阅读 · 0 评论 -
python 递归函数
python学习笔记,特做记录,分享给大家,希望对大家有所帮助。在函数内部,可以调用其他函数。如果一个函数在内部调用自身本身,这个函数就是递归函数。举个例子,我们来计算阶乘n! = 1 x 2 x 3 x … x n,用函数fact(n)表示,可以看出:fact(n) = n! = 1 x 2 x 3 x ... x (n-1) x n = (n-1)! x n = fact(n-1) x ...原创 2019-06-24 14:30:19 · 402 阅读 · 0 评论 -
python 高级特性之迭代器
python学习笔记,特做记录,分享给大家,希望对大家有所帮助。迭代器我们已经知道,可以直接作用于for循环的数据类型有以下几种:一类是集合数据类型,如list、tuple、dict、set、str等;一类是generator,包括生成器和带yield的generator function。这些可以直接作用于for循环的对象统称为可迭代对象:Iterable。可以使用isinstanc...原创 2019-07-02 17:38:38 · 263 阅读 · 0 评论 -
python 高级特性之生成器
python学习笔记,特做记录,分享给大家,希望对大家有所帮助。生成器通过列表生成式,我们可以直接创建一个列表。但是,受到内存限制,列表容量肯定是有限的。而且,创建一个包含100万个元素的列表,不仅占用很大的存储空间,如果我们仅仅需要访问前面几个元素,那后面绝大多数元素占用的空间都白白浪费了。所以,如果列表元素可以按照某种算法推算出来,那我们是否可以在循环的过程中不断推算出后续的元素呢?这样...原创 2019-07-02 17:37:56 · 183 阅读 · 0 评论 -
python 高级特性之列表生成式
python学习笔记,特做记录,分享给大家,希望对大家有所帮助。列表生成式列表生成式即List Comprehensions,是Python内置的非常简单却强大的可以用来创建list的生成式。举个例子,要生成list [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]可以用list(range(1, 11)):list(range(1, 11))运行结果:[1, 2, 3...原创 2019-07-01 17:22:24 · 317 阅读 · 0 评论 -
python 加载线上图片
python学习笔记,特做记录,分享给大家,希望对大家有所帮助。此前分享的方法只适用于显示png格式的图片,这篇文章来分享一个加载线上图片的功能。首先引入包import iofrom PIL import Image, ImageTk显示图片代码:try: # Python2 import Tkinter as tk from urllib2 import u...原创 2019-05-14 11:29:54 · 989 阅读 · 0 评论 -
python 函数的关键字参数
python学习笔记,特做记录,分享给大家,希望对大家有所帮助。关键字参数可变参数允许你传入0个或任意个参数,这些可变参数在函数调用时自动组装为一个tuple。而关键字参数允许你传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict。请看示例:def person(name, age, **kw): print ('name:', name, 'age:', ...原创 2019-04-23 15:47:02 · 2158 阅读 · 0 评论 -
python 判断数字是奇数还是偶数
代码如下:while True: try: num=int(input('输入一个整数:')) #判断输入是否为整数 except ValueError: #不是纯数字需要重新输入 print("输入的不是整数!") continue if num%2==0: print('偶数') else: ...原创 2019-04-23 11:10:55 · 51476 阅读 · 6 评论 -
python 获取当前时间
Python 程序能用很多方式处理日期和时间,转换日期格式是一个常见的功能。每个时间戳都以自从1970年1月1日午夜(历元)经过了多长时间来表示。当前时间-时间戳#!/usr/bin/python# -*- coding: UTF-8 -*-import time; # 引入time模块ticks = time.time()print "当前时间戳为:", ticks运...原创 2019-04-23 11:08:54 · 26780 阅读 · 0 评论 -
python 九九乘法表
python学习笔记,特做记录,分享给大家,希望对大家有所帮助。九九乘法表定义了一个函数multiplicationOne,其思路同C/C++语言通用实现方法类似,使用两层for循环,外层控制行的转换,内层控制列的口诀输出,代码如下:def multiplicationOne(): for i in range(1, 10): for j in range(1, i ...原创 2019-04-26 10:36:47 · 733 阅读 · 0 评论 -
python 显示 gif 动图
下面所介绍的方法不仅可以显示gif动图,而且可以显示图片 首先引入pyglet包import pyglet主方法源码:# 在工作目录中选择一个gif动画文件ag_file = "111.gif"animation = pyglet.resource.animation(ag_file)sprite = pyglet.sprite.Sprite(animation)# 创建一个窗口并将其设置为原创 2017-12-05 11:42:55 · 18747 阅读 · 4 评论 -
python PNG图片显示
此方法只适用于显示png格式的图片 首先引入包import matplotlib.pyplot as plt # plt 用于显示图片import matplotlib.image as mpimg # mpimg 用于读取图片显示图片代码:lena = mpimg.imread('myself.png') # 读取和代码处于同一目录下的 lena.png# 此时 lena 就已经是一个 np原创 2017-12-05 11:41:59 · 11770 阅读 · 1 评论 -
python 高级特性之切片
python学习笔记,特做记录,分享给大家,希望对大家有所帮助。取一个list或tuple的部分元素是非常常见的操作。比如,一个list取前3个元素,应该怎么做?笨办法如下:L = ['Michael', 'Sarah', 'Tracy', 'Bob', 'Jack']print(L[0], L[1], L[2])运行结果:Michael Sarah TracyProcess fi...原创 2019-06-24 14:31:22 · 367 阅读 · 0 评论