- 博客(53)
- 收藏
- 关注
原创 python常用内建模块:hashlib
hashlib是 Python 的一个内建模块,用于提供常见的消息摘要算法(也称为哈希算法)。这些算法可以用于确保数据完整性、进行密码存储(通过加盐处理)等。hashlib支持多种哈希算法,包括 MD5、SHA-1、SHA-224、SHA-256、SHA-384、SHA-512 等。以下是一些使用hashlib。
2024-12-26 17:09:13
714
原创 python常用内建模块:struct
struct是 Python 中的一个内建模块,用于处理 C 语言结构体与 Python 数据类型之间的转换。它允许你将 Python 中的数据打包成二进制格式,或者将二进制数据解包成 Python 数据类型。这在处理二进制数据(如网络通信、文件读写等)时非常有用。
2024-12-26 17:06:35
918
原创 python常用内建模块:base64
如果你需要将编码后的数据作为字符串处理(例如在 JSON 中传输或在网页上显示),你可能需要将其转换为适当的字符串格式(例如,使用 UTF-8 编码的字符串)。这些 8 位字节被映射到一个包含 64 个可打印字符的集合中(包括大写字母、小写字母、数字和两个额外的符号,通常是。编码通过将二进制数据分成每三个字节一组(24 位),然后将这些位分成四组,每组 6 位,并在每组前面加上两个填充位(通常是。由于 24 位原始数据被编码为 32 位(4 个 8 位字节),因此。请注意,编码后的数据通常是字节对象(
2024-12-25 13:46:42
883
原创 python常用内建模块:argparse
argparse是 Python 标准库中的一个模块,用于编写用户友好的命令行接口。它使得解析命令行参数变得简单且直观。通过argparse,你可以定义你的程序需要的参数,并自动生成帮助和使用信息。以下是一个简单的示例,展示了如何使用argparse。
2024-12-25 13:40:50
347
原创 python常用内建模块:collections
是 Python 标准库中的一个模块,它提供了许多有用的容器数据类型,这些类型是对内置类型的扩展或补充。以下是。
2024-12-22 17:16:20
681
原创 python常用内建模块:datetime
datetime是 Python 标准库中的一个常用模块,用于处理日期和时间。它提供了丰富的类和函数,用于表示和操作日期和时间。以下是一些datetime模块中常用的类和函数,以及它们的基本用法。
2024-12-22 17:13:05
645
原创 python:正则表达式
正则表达式(Regular Expressions,简称 regex)是一种强大的文本处理工具,用于匹配字符串中的字符组合。Python 提供了re模块来支持正则表达式的操作。
2024-12-21 12:20:38
503
原创 Python进程与线程:分布式进程
Python的分布式进程接口简洁且封装良好,非常适合在需要将繁重任务分布到多台机器的环境中应用。通过合理利用这些接口,我们可以轻松实现高效的分布式计算。
2024-12-21 12:17:30
1070
原创 python进程和线程:进程 vs. 线程
在实现多任务时,我们通常采用Master-Worker模式。Master负责分配任务,而Worker负责执行任务。在多任务环境下,通常有一个Master和多个Worker。多进程:主进程作为Master,其他进程作为Worker。多线程:主线程作为Master,其他线程作为Worker。多进程适用于计算密集型任务,但创建进程开销大。多线程适用于IO密集型任务,但存在稳定性问题。异步IO和事件驱动模型是现代多任务编程的主要趋势。Python中可以使用协程来实现单线程内的并发执行。
2024-12-20 16:55:55
686
原创 python进程和线程:ThreadLocal
是一个非常有用的工具,可以帮助你在多线程编程中避免数据竞争和共享状态问题。然而,它也需要谨慎使用,以避免内存泄漏和意外的行为。在适当的情况下,可以极大地简化多线程编程的复杂性。
2024-12-20 16:42:20
583
原创 python进程和线程:多线程
多线程是Python中一种实现并发的方式,适用于IO密集型任务。通过threading模块,你可以轻松创建和管理多个线程,并实现线程间的通信和同步。然而,由于GIL的限制,多线程在CPU密集型任务上可能无法充分利用多核CPU的计算能力。在这种情况下,可以考虑使用多进程或其他并发编程模型。
2024-12-19 16:23:40
512
原创 python进程和线程:多进程
多进程是Python中一种强大的并行执行任务的方法,特别适用于CPU密集型任务。通过模块,你可以轻松创建和管理多个进程,并实现进程间的通信和同步。然而,使用多进程时也需要注意跨平台差异和资源消耗等问题。
2024-12-19 16:20:14
541
原创 python IO编程:序列化
在Python的IO编程中,序列化(Serialization)是指将数据结构或对象转换为一种格式(如JSON、XML、二进制等),以便可以将其保存到磁盘、通过网络传输或存储在内存中。反序列化(Deserialization)则是将这种格式转换回原始的数据结构或对象。Python提供了多种序列化方法,其中最常见的是使用pickle模块进行二进制序列化,以及使用json模块进行JSON格式的序列化。
2024-12-18 18:50:15
649
原创 python IO编程:StringIO和BytesIO
在Python的IO编程中,StringIO和BytesIO是两个非常有用的类,它们提供了在内存中读写文本和二进制数据的功能,而不需要实际打开磁盘上的文件。
2024-12-17 14:53:47
785
原创 python IO编程:文件读写
在Python中,文件读写是一项非常常见的任务。Python提供了内置的open()函数来打开文件,并提供了多种模式来读取、写入和追加文件内容。以下是一些关于文件读写的常用操作和示例。
2024-12-17 14:49:23
383
原创 python:文档测试
在Python中,文档测试(doctest)是一种通过嵌入示例代码和预期输出来测试文档字符串(docstrings)和文档中的代码片段的方法。它允许开发者在编写文档的同时,确保文档中的代码示例是准确和有效的。doctest模块会读取文档字符串或指定文件中的代码示例,执行它们,并比较实际输出与预期输出。
2024-12-16 14:54:00
897
原创 python:单元测试
在Python编程中,单元测试是确保代码按预期工作的关键步骤之一。单元测试是指对代码中的最小可测试单元(通常是函数或方法)进行隔离测试,以验证其行为是否符合预期。Python有一个内置的单元测试框架,名为unittest,它提供了编写和运行测试所需的所有工具。
2024-12-16 14:50:54
940
原创 python:调试
在Python编程中,调试是一个关键步骤,它能帮助你找出代码中的错误、理解程序的运行流程,并确保程序按预期工作。Python提供了多种调试工具和策略,包括内置的调试器(pdb)、日志记录、打印语句以及集成开发环境(IDE)中的调试功能。
2024-12-16 14:43:25
592
原创 python:错误处理
你还可以定义自己的异常类:python复制代码try:# 可能引发自定义异常的代码raise MyCustomError("这是一个自定义的错误消息!")# 处理自定义异常print(f"捕获到自定义异常: {e.message}")通过这些机制,你可以更好地处理Python中的错误,使你的程序更加健壮和易于维护。
2024-12-16 14:40:12
578
原创 python面向对象高级编程:使用元类
元类通常是通过继承type来创建的。你可以通过重写type的__new__和__init__方法来控制类的创建和初始化过程。python复制代码# 在这里可以修改类的定义# 在这里可以执行类创建后的操作元类是Python中一个强大但复杂的特性。它们允许你深入控制类的创建和初始化过程,并可以实现一些高级编程模式。然而,由于元类的使用可能会使代码变得难以理解和维护,因此它们通常只在必要时才使用。在大多数情况下,普通的类和继承关系足以满足需求。
2024-12-14 18:47:09
528
原创 python面向对象高级编程:使用枚举类
定义一个枚举类非常简单,只需继承Enum类,并定义枚举成员:python复制代码RED = 1GREEN = 2BLUE = 3在这个例子中,ColorREDGREEN和BLUE,每个成员都有一个相关联的值(在这个例子中是整数)。枚举成员的值不必是整数,它们可以是任何不可变类型(如字符串、元组等):python复制代码在这个例子中,枚举成员的值是字符串。枚举类在Python中是一个非常有用的工具,它可以帮助你定义一组相关的常量,并使代码更加清晰和易于维护。
2024-12-14 18:43:30
664
原创 python面向对象高级编程:定制类
在Python的面向对象编程(OOP)中,定制类通常涉及覆盖(或扩展)类的内置方法(也称为魔术方法或特殊方法),这些方法以双下划线(__)开头和结尾。通过覆盖这些方法,你可以改变类的行为,比如对象的创建和销毁、属性的访问、以及对象之间的比较等。
2024-12-13 17:10:25
610
原创 python面向对象高级编程:多重继承
多重继承虽然强大,但也可能带来复杂性。尽量避免复杂的继承结构。使用组合(Composition)而不是继承(Inheritance),如果可能的话。清楚地了解类的 MRO,以便解决潜在的方法名冲突。
2024-12-13 17:07:27
418
原创 python面向对象高级编程:使用@property
在Python的面向对象编程中,@property是一个内置的装饰器,它允许将类的方法当作属性来访问。这种机制使得可以对属性的获取(getter)和设置(setter)进行细粒度的控制,同时保持属性访问的简洁性。
2024-12-12 16:12:29
485
原创 python面向对象高级编程:使用__slots__
在Python中,__slots__是一个类属性,用于声明实例可以有的属性名称。通过使用__slots__,可以限制实例可以拥有的属性,并且可以提高内存效率和访问速度。__slots__还可以防止动态添加新的属性。
2024-12-12 16:07:47
491
原创 python面向对象编程:实例属性和类属性
在Python的面向对象编程(OOP)中,实例属性和类属性是两种不同类型的属性,它们有不同的用途和访问方式。
2024-12-11 17:08:07
717
原创 python面向对象编程:继承和多态
在Python的面向对象编程(OOP)中,获取对象的信息通常涉及访问对象的属性和方法。通过这些方法,你可以方便地获取和检查Python对象的信息,这对于调试和了解对象的内部状态非常有帮助。函数可以安全地访问对象的属性,如果属性不存在,可以返回一个默认值,避免抛出。函数返回对象的所有属性和方法(包括内置的和自定义的)的列表。方法,可以自定义对象的字符串表示,使得打印对象时更有信息量。模块提供了更多关于对象的信息,例如方法的签名、源代码等。属性是一个字典,包含对象的所有实例属性和它们的值。
2024-12-11 17:05:14
647
原创 python面向对象编程:访问限制
在Python面向对象编程中,访问限制是一个重要的概念,用于控制类的属性和方法在不同作用域下的可见性和可访问性。Python主要通过命名约定和内置机制来实现访问限制。
2024-12-10 17:28:37
321
原创 python面向对象编程:类和实例
实例则是根据类创建的对象,它可以使用类中定义的属性和方法。在上面的例子中,Dog是一个类,它有三个方法:__init__(初始化方法,用于设置实例属性),bark(实例方法,用于返回字符串),以及两个类相关的特殊方法:get_species(类方法)和is_mammal(静态方法)。• 方法类型:实例方法接收self参数(指向实例本身),类方法接收cls参数(指向类本身,并使用@classmethod装饰器),静态方法不接收self或cls参数(使用@staticmethod装饰器)。实例是类的具体对象。
2024-12-08 11:40:26
600
原创 python模块
模块(Module)是包含Python代码的文件,它可以是函数、类和变量的集合。通过使用模块,可以将代码分割成多个文件,每个文件都包含特定的功能或一组相关的功能。自定义模块可以放在你的项目目录中,或者放在Python的模块搜索路径中的某个位置。1. 创建模块:要创建一个模块,只需编写一个Python文件,并确保文件名符合Python的命名规则(通常是.py结尾)。2. 使用模块:要使用模块中的函数、类或变量,需要先导入该模块。• 在模块中,最好使用函数和类来组织代码,而不是将大量代码直接写在模块级别。
2024-12-08 11:01:11
401
原创 python函数:偏函数
偏函数(Partial Function)在Python中并不是一个内置的关键字或直接的函数类型,可以通过functools.partial来创建偏函数。在这个例子中,add_ten是一个偏函数,它固定了add函数的第一个参数a为10。偏函数可以作为一种灵活的方式来“配置”函数。1. 简化函数调用:当你需要多次调用一个具有多个参数的函数,并且某些参数的值总是相同时,可以使用偏函数来简化调用。# 创建一个偏函数,它总是将第二个参数设置为list2中的元素(这里是一个示例,实际上map会迭代list2)
2024-12-08 10:52:56
555
原创 python函数:装饰器
在Python中,装饰器(decorator)是一种高级功能,它允许你在不修改函数本身代码的情况下,为函数或方法添加新的功能。装饰器本质上是一个接收函数作为参数,并返回一个新函数的函数。装饰器可以链式调用,即一个函数可以被多个装饰器装饰。装饰器的应用顺序是从下到上的,但执行顺序是从上到下的(即先应用的装饰器后执行,后应用的装饰器先执行)。装饰器不仅限于函数,还可以用于装饰类的方法(包括静态方法和类方法),但需要注意的一点是,当装饰类的方法时,参数(分别对应实例方法和类方法)会被正确地传递给被装饰的方法。
2024-12-05 15:55:55
748
原创 python函数:匿名函数
匿名函数主要用于需要将函数作为参数传递,或者函数足够简单以至于不需要一个正式的名称时。在Python中,匿名函数是指没有具体名称的函数,通常使用。
2024-12-05 15:44:28
530
原创 python函数:返回函数
在Python中,函数可以返回另一个函数作为其结果。:闭包是指一个函数记住并访问它的词法作用域,即使这个函数在其词法作用域之外执行。在Python中,当你返回一个内部函数时,它就形成了一个闭包,因为它记住了外部函数的局部变量。:装饰器是Python中的一个高级功能,它允许你修改或扩展函数或方法的行为,而不改变其本身的代码。装饰器通常实现为返回函数的函数。:在某些情况下,你可能需要将一个函数作为参数传递给另一个函数,并在后者内部调用前者。:通过返回不同的内部函数,可以根据需要创建具有不同行为的函数。
2024-12-04 16:35:25
429
原创 python函数:高阶函数
你也可以创建自己的高阶函数,例如:python复制代码print(squared_numbers) # 输出: [1, 4, 9, 16, 25]在这个例子中,是一个高阶函数,它接收一个函数func和一个可迭代对象iterable,并将func应用于iterable的每个元素。
2024-12-04 16:33:29
372
原创 python进阶:迭代器
_iter__()方法:返回迭代器对象本身。这是迭代器协议的一部分,使得对象可以用于for循环和in关键字。__next__()方法:返回序列中的下一个元素。如果序列中没有更多元素,则引发异常,以通知迭代终止。下面是一个简单的例子,展示如何创建一个自定义迭代器类:python复制代码return self # 返回迭代器对象本身return numelse:raise StopIteration # 没有更多元素时引发异常# 使用自定义迭代器。
2024-12-03 15:38:14
301
原创 python进阶:生成器
生成器(Generators)是Python中一种特殊的迭代器,它允许你逐个生成值,而不是一次性将所有值加载到内存中。生成器使用函数来产生序列中的元素,每次调用函数时,它会返回一个迭代器对象,这个对象使用延迟计算(lazy evaluation),即只有在需要时才生成下一个值。
2024-12-03 15:32:22
428
python常用内建模块:base64
2024-12-25
python常用内建模块:argparse
2024-12-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅