![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Real Python
1
guoyunfei2018
这个作者很懒,什么都没留下…
展开
-
Python 特殊方法
目录1.__new__ 和 __init__2.__repr__ 和__str__3.with 语句上下文管理器4. 一些魔术方法的调用Python魔术方法是面向对象的Python中的内容,是特殊的方法,可以定义为向类中添加“magic”,总是被双下划线包围。官方文档的描述https://docs.python.org/zh-cn/3/reference/dat...原创 2019-11-27 14:55:36 · 161 阅读 · 0 评论 -
Python args 和 kwargs
目录1. 在函数定义中使用*args2在函数定义中使用**kwargs3.参数顺序4.拆包运算符(*)(**)1. 在函数定义中使用*args以下是个自定义的求和函数:>>> def my_sum(a,b): return a + b >>> my_sum(1,2)3此函数仅能对2个数求和,如果需要对不同数量的...原创 2019-11-26 11:35:53 · 107 阅读 · 0 评论 -
工厂方法模式在Python中的实现
目录1.工厂方法#1 一个示例#2.发现问题#3将代码重构为所需的接口#4 工厂方法的基本实现2. 认识使用工厂方法的机会3. 通用对象工厂4.专业化对象工厂以提高代码可读性工厂方法(Factory Method)模式的意义是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类当中。核心工厂类不再负责产品的创建,这样核心类成为一个抽象工厂角色,仅负责具体...原创 2019-11-25 16:50:37 · 102 阅读 · 0 评论 -
Python装饰器(Decorator)
目录一.Python函数的工作方式1.函数是“一等公民”#2.内部函数#3 作为返回值返回2.一些装饰器的有用示例#1. 计时功能的装饰器#2 注册插件的装饰器3.装饰器的更多高级功能一.Python函数的工作方式1.函数是“一等公民”在Python中,函数是“一等公民”,这意味着它们与任何其他对象(整数、字符串、列表、模块等)是同等的。您可以动态地创建...原创 2019-11-21 16:09:46 · 181 阅读 · 0 评论 -
Python的浅层和深层复制
1.官方文档定义:Python的浅层 (shallow) 和深层 (deep) 复制浅层复制和深层复制之间的区别仅与复合对象 (即包含其他对象的对象,如列表或类的实例) 相关: 一个浅层复制会构造一个新的复合对象,然后(在可能的范围内)将原对象中找到的引用插入其中。 一个深层复制会构造一个新的复合对象,然后递归地将原始对象中所找到的对象的副本插入。 深度...原创 2019-11-21 13:44:40 · 348 阅读 · 0 评论 -
Python Lambda
目录1.Lambda函数2.普通Python函数和lambda函数之间的共性和细微差别#1 字节码#2 Traceback#3 句法#4 Decorators装饰器#5 闭包#6 Evaluation Time评估时间#7 单元测试unittest3.避免滥用4.适合使用#1 map()、filter()、functools.reduce(),但现在...原创 2019-11-20 15:58:26 · 127 阅读 · 0 评论 -
Python一些更好的方法
目录一、强大的内置功能1.enumerate() 函数2.用列表推导替代map()、filter()3.调试器breakpoint()4.使用f-Strings来格式化字符串5.用sorted()排序二、有效利用数据结构1.用集合存储唯一值2.用生成器代替列表、列表推导3.字典的get()、setdefault()方法三、标准库1.处理缺少的字...原创 2019-11-19 11:13:26 · 117 阅读 · 0 评论 -
Python字典遍历
目录1.字典遍历基本方法2.常用方法键值翻转两个列表分别作为键值合成字典1.字典遍历基本方法在Python 3.6及更高版本中,字典是有序的数据结构,这意味着它们按引入时的顺序将其元素保持不变,这是Python字典的一个相对较新的功能,并且非常有用,但在Python 3.6之前,字典是无序的数据结构,如果要编写应该在不同的Python版本中运行的代码,则不能依赖于此功...原创 2019-11-18 16:52:38 · 309 阅读 · 0 评论 -
Python生成器及创建数据通道
目录1.创建生成器2.分析生成器性能3.Python yield语句4.生成器的方法5.使用生成器创建数据管道1.创建生成器创建生成器的两种主要方法:生成器函数、生成器表达式。生成器函数的外观和行为与常规函数类似,但有一个定义特征。生成器函数使用Python yield关键字而不是return。#无限序列def infinite_sequence():...原创 2019-11-15 15:32:39 · 259 阅读 · 0 评论 -
Python字符串格式化最佳实践
目录1.%-formatting2.str.format()3.f-Strings4.Template Strings (标准库)5.Python字符串格式化的经验法则格式化字符串:按指定的规则连接字符串或输出其他变量并返回新的字符串1.%-formattingname='gyf'age='22's='hello,%S,you are %s' % (name,...原创 2019-11-15 11:13:24 · 232 阅读 · 0 评论 -
Python中的import工作方式
目录1.import的工作方式2.import语句的样式3.绝对导入和相对导入1.import的工作方式Python模块是具有.py扩展名的文件,而Python包是其中具有模块的任何文件夹(或者在Python 2中是包含__init__.py文件的文件夹)。import从Python标准库,第三方软件包和您自己的本地软件包中导入packages and modules...原创 2019-11-13 15:41:22 · 122 阅读 · 0 评论 -
Python中的GIL
目录1.Python中的GIL2.GIL对Python程序的性能影响2.多进程1.Python中的GILPython中的全局解释器锁GIL是一种互斥锁,仅允许一个线程持有Python解释器的控制权。这意味着在任何时间点只有一个线程可以处于执行状态。对于执行单线程程序的开发人员而言,GIL的影响并不明显,但它可能是CPU绑定和多线程代码的性能瓶颈。由于即使在具有多个CP...原创 2019-11-13 14:51:06 · 111 阅读 · 0 评论 -
CPython的内存分配策略
目录1.内存管理从硬件到软件2.CPython3.全局解释锁GIL4.CPython的内存分配策略1.内存管理从硬件到软件内存管理是应用程序读取和写入数据的过程。内存管理器确定将应用程序数据放置在何处。由于内存有限,管理器必须找到一些可用空间并将其提供给应用程序,提供内存的过程通常称为内存分配。另一方面,当不再需要数据时,可以将其删除或释放。硬件(例如RAM或硬盘...原创 2019-11-13 10:58:27 · 205 阅读 · 0 评论 -
通过比较C++来认识Python的一些特征
目录目录1.程序执行2.语法3.列表推导4.动态类型、静态类型5.内存管理1.程序执行在C++中,使用编译器将源代码转换为机器代码并生成可执行文件。可执行文件是一个单独的文件,然后可以作为独立程序运行。此过程将输出针对其特定处理器和操作系统的实际机器指令,这意味着您必须分别针对Windows,Mac和Linux重新编译程序。在Python中,Pytho...原创 2019-11-12 14:43:57 · 100 阅读 · 0 评论