Python 语法特性
文章平均质量分 62
长行
这个作者很懒,什么都没留下…
展开
-
Python 语法特性|协程与 greenlet【学习笔记】
当操作系统切换线程时:需要切换线程的私有资源,包括栈、寄存器等;如需切换进程,则还需要切换用户态资源,包括内存、打开文件等。协程也可以理解为一种特殊的函数调用。正常函数在出口返回,而协程可以再中途返回而后恢复继续运行。优势:在经常有阻塞的情况下,主动让出时间片的协程模式比抢占式线程分配的效率要好,也简单得多。当调度策略切换协程时,只需要简单的现场保存和恢复。原创 2023-10-20 13:30:58 · 75 阅读 · 0 评论 -
Python 语法特性|uuid 模块整理
Python 的 uuid 模块是用于生成和操作 UUID(Universally Unique Identifier,通用唯一标识符)的模块。getnode():获取 48 位正整数形式的硬件地址。:根据主机 ID、序列号和当前时间生成一个 UUID。如果没有给出node,则使用getnode()来获取硬件地址;如果没有给出clock_seq,则使用随机的 14 比特位序列号。:根据命名空间标识符namespace和name的 MD5 哈希值来生成一个 UUID。uuid4()原创 2023-10-11 20:18:54 · 196 阅读 · 0 评论 -
Python 语法特性|Semaphore 和 BoundedSemaphore 信号量详解
信号量(Semaphore)是一种计数器,用于控制能同时访问某个资源的线程数量。它主要有两个操作:P(等待)和 V(释放)。当一个线程要访问共享资源时,它会调用 P 操作,如果计数器大于 0,则将计数器的值减 1,并允许访问资源;如果计数器等于 0,则线程被阻塞,直到计数器大于 0。当一个线程访问完共享资源后,会调用 V 操作,将计数器的值加 1,以允许其他线程访问资源。在 Python 的类和类中,acquire()方法对应 P 操作,release()方法对应 V 操作。Python 的。原创 2023-10-11 13:33:08 · 912 阅读 · 0 评论 -
Python 语法特性|错误和调试
在我们的程序运行中,不可避免地会出现各种各样的错误。造成这些错误的原因也多种多样,可能是因为代码逻辑存在疏漏,某一种情况我们没有考虑到;也可能是因为用户的特殊操作,使我们的程序陷入了未曾涉及的场景……错误处理当Python将错误信息输出到控制台后,我们首先需要定位到错误发生的位置。def test(name): return int(name)test("cbekd")例如,以上代码运行时会出现如下错误信息:Traceback (most recent call last): Fi原创 2020-05-15 14:55:54 · 412 阅读 · 1 评论 -
Python 语法特性|Python 常用内置函数
到目前为止(3.8.2),Python解释器共计提供了69个内置函数和类型,这些函数可以在任意条件下被调用。例如我们之前用来查询变量类型的type()就是一个内置函数。type()实际上是类的构造方法,其返回值是一个type对象,大家在没有理解类与对象之前,也可以先简单地将其理解为一个函数。下面我们来详细介绍一下在初学阶段比较常用的内置函数,在描述函数的功能时也主要以初学阶段可以用到的功能为主。1. 数据类型相关首先,我们先来了解一下与数据类型相关的内置函数。刚才用作举例的type()方法就是与原创 2020-05-15 14:53:00 · 542 阅读 · 1 评论 -
Python 语法特性|注释
代码中的注释,在程序执行时会被忽略,主要是为了向协作者和未来的自己说明代码的思路、功能。我们在注释时应假设阅读者比我们的Python水平要高,阅读注释只是为了更快地理解代码要做什么,切忌直接描述代码。另外,注释也不宜过多,一般占到源代码的1/3左右是比较合适的。在Python中,主要有两种注释的方法,分别为单行注释和多行注释。单行注释使用#标记,可以单作一行,也可以用在其他行的结尾,这类注释主要用来解释一段代码(单作一行的情况)或用来解释该行代码的作用。为了提高可读性,放在行尾的注释距离代码至少间隔2个原创 2020-05-14 17:15:29 · 324 阅读 · 0 评论 -
Python 语法特性|运算符
算术运算符在以上的内容中,我们已经涉及了加、减、乘、除、取余、取模、幂运算共7种运行。这类用于运算的符号叫做“运算符”,之前我们涉及的7种运算符都属于“算术运算符”。运算符功能+数字+数字=求和;字符串+字符串=按前后顺序合并字符串-数字-数字=计算差值*数字*数字=求积;字符串*数字=重复若干次的字符串/数字/数字=求商%数字%数字=取余(除法的余数部分)//数字//数字=取模(商的整数部分)**数字**数字=幂运算(前数的后数次幂原创 2020-05-14 17:11:28 · 5708 阅读 · 6 评论 -
Python 语法特性|变量的基本操作
下面,我们了解一下数值型变量和字符串变量的基本操作。数值变量的基本操作对于数值变量。我们首先,数值变量可以直接进行加减乘除的运算,也可以通过括号来调整计算顺序。a = 3b = 5print(a + b) # 输出值: 8print(b / a) # 输出值: 1.6666666666666667print((a + b) * b) # 输出值: 40有的时候,我们不需要得到小数形式的商,而是需要得到商的整数,也就是“取模”,可以使用“//”运算符;又或者只需要得到余数,也就是“取余原创 2020-05-14 17:10:55 · 363 阅读 · 1 评论 -
Python 语法特性|变量
使用变量此前,我们已经了解了控制台输入和输出的方法,通过以下代码,我们可以实现了读取用户想到的数字并输出。number = input("你想到了什么数字? ")print("你想到的数字是:", number)在这段代码中:第一行我们使用input()函数从控制台读取了用户输入的内容,并将其存入了名为number的变量中,而在第二行中,我们使用print()函数将number变量的值输出到了控制台中。我们通常将第一行对number变量的操作称为“变量赋值”,将第二行对number变量的操作称为原创 2020-05-14 17:10:24 · 431 阅读 · 1 评论 -
Python 语法特性|Python 的 multiprocess.Pool 的报错在主进程打印方法
如果直接使用多进程执行任务函数,若任务函数中抛出异常,则主进程中无法获得异常信息。原创 2023-03-22 20:40:31 · 871 阅读 · 0 评论 -
Python 语法特性|Python 的 chardet 包识别编码类型
Python 的 chardet 包提供自动检测字节对象编码类型的功能。字段表示推测的编码类型,原创 2023-03-22 13:57:44 · 294 阅读 · 0 评论 -
Python 语法特性|numpy 各类型对 json.dumps 的支持情况
numpy、json原创 2023-03-14 13:16:54 · 390 阅读 · 0 评论 -
Python 语法特性|装饰器用法详解
Python 装饰器用法详解原创 2023-01-30 13:36:01 · 179 阅读 · 0 评论 -
Python 语法特性|使用 del 语句删除名称对引用计数的影响
del 语句删除名称对引用计数的影响原创 2022-12-06 23:45:37 · 199 阅读 · 0 评论 -
Python 语法特性|Python中不同解释器间哈希值统一的方法
在 Python 中,字符串(str类型)、字面值(bytes类型)和日期类型(datetime.datetime类型)的哈希值,只保证了在同一个解释器里相同(同一个解释器的不同进程之间也相同)。这是因为 Python 中 hash() 函数在计算以上类型的哈希值时,需要用到环境参数 PYTHONHASHSEED。PYTHONHASHSEED 参数可以在启动 Python 脚本时设置,如果不设置的话则将在 [0,4294967295] 范围内随机生成。只有需要求哈希值的对象相同,且 PYTHONHASHS原创 2022-01-12 13:20:00 · 970 阅读 · 0 评论 -
Python 语法特性|Windows环境中SharedMemory共享内存的回收机制
我们可以通过如下方式创建一个新的共享内存块,并实例化一个关联到这个新的共享内存块的 SharedMemory 对象:shm = shared_memory.SharedMemory(name="shm_name", create=True, size=40)我们还可以通过如下方式,实例化一个关联到一个已经存在的共享内存块的 SharedMemory 对象:shared_memory.SharedMemory(name="shm_name")除了在 Python3 官方文档:multiproces原创 2021-12-02 22:09:13 · 2116 阅读 · 0 评论 -
Python 语法特性|exec() 函数标识符的作用域
首先,看一个使用exec的简单的例子:content = """class Tool: def __str__(self): return "Hello""""if __name__ == "__main__": exec(content) print(Tool())这个例子正常地返回了"Hello"的结果。但是,当我们在函数或类中运行exec函数后,就会报错。例如以下两种情况。def f(): exec(content) print原创 2020-07-15 10:13:33 · 2193 阅读 · 1 评论 -
Python 语法特性|切片器语法原理
切片器原创 2023-03-19 14:04:22 · 262 阅读 · 0 评论 -
Python 语法特性|logging 日志模块
LoggerHandlerFilterFormatter不要直接实例化记录器,而应该通过模块级别的函数来实例化。多次使用相同的名字调用会一直返回相同的 Logger 对象的引用。原创 2023-03-17 13:29:41 · 79 阅读 · 1 评论 -
Python 语法特性|functools.lru_cache
在 Python 中,我们可以通过给函数添加装饰器,来实现函数结果的 LRU 缓存;当下次以相同参数调用时直接返回上一次的结果,从而避免高开销、深层递归、高 I/O 逻辑的重复执行。装饰器有两个参数,分别是maxsize和typedmaxsizemaxsizeNonetypedtypedTrueFalse下面探讨一些场景。原创 2023-03-16 21:12:24 · 252 阅读 · 0 评论 -
Python 语法特性|协程
协程 (Coroutines) 是允许暂停和继续的计算机程序组件,将子例程用于多任务协作。协程非常适用于实现常见的程序组件,例如任务协作、异常、事件循环、迭代器、无限列表和管道。协程可以被描述为“可以暂停执行的函数”,是一种。Python 3 “协程” 的官方文档地址:https://docs.python.org/zh-cn/3/library/asyncio-task.html。可等待对象有三种主要类型:协程、任务和 Future。在 Python 中,我们可以使用。与中被使用,那么它就是。原创 2023-03-16 13:25:44 · 79 阅读 · 0 评论 -
Python 语法特性|闭包
Python 闭包原创 2023-03-13 20:55:47 · 56 阅读 · 0 评论