08 2019 档案
摘要:前面我们见过书写字符串的一种特殊方式,即直接将两个字符串紧挨着写在一起,这样的话 Python 就会自动拼接它们,比如说: 还有一种方式是使用 "+"的方式,比较简单 还有使用字符串拼接数字,因为Python不允许直接拼接,所以要将数字转换成字符串 str() 和 repr() 函数都可以将数字转换
阅读全文
摘要:与线程池类似的是,如果程序需要启动多个进程,也可以使用进程池来管理进程。程序可以通过 multiprocessing 模块的 Pool() 函数创建进程池,进程池实际上是 multiprocessing.pool.Pool 类。进程池具有如下常用方法: 1.apply(func[, args[, k
阅读全文
摘要:Python 在 multiprocessing 模块下提供了 Process 来创建新进程。与 Thread 类似的是,使用 Process 创建新进程也有两种方式: Process 类也有如下类似的方法和属性: run():重写该方法可实现进程的执行体。 start():该方法用于启动进程。 j
阅读全文
摘要:如果需要执行更复杂的任务调度,则可使用 Python 提供的 sched 模块。该模块提供了 sched.scheduler 类,该类代表一个任务调度器。sched.scheduler(timefunc=time.monotonic, delayfunc=time.sleep) 构造器支持两个参数:
阅读全文
摘要:lambda 表达式 lambda 表达式的语法格式如下: lambda [parameter_list] : 表达式 从上面的语法格式可以看出 lambda 表达式的几个要点: lambda 表达式必须使用 lambda 关键字定义。 在 lambda 关键字之后、冒号左边的是参数列表,可以没有参
阅读全文
摘要:系统启动一个新线程的成本是比较高的,因为它涉及与操作系统的交互。在这种情形下,使用线程池可以很好地提升性能,尤其是当程序中需要创建大量生存期很短暂的线程时,更应该考虑使用线程池。 线程池在系统启动时即创建大量空闲的线程,程序只要将一个函数提交给线程池,线程池就会启动一个空闲的线程来执行它。当该函数执
阅读全文
摘要:queue 模块下提供了几个阻塞队列,这些队列主要用于实现线程通信。在 queue 模块下主要提供了三个类,分别代表三种队列,它们的主要区别就在于进队列、出队列的不同。关于这三个队列类的简单介绍如下: 这三个队列类的属性和方法基本相同, 它们都提供了如下属性和方法: Queue.qsize():返回
阅读全文
摘要:当线程在系统中运行时,线程的调度具有一定的透明性,通常程序无法准确控制线程的轮换执行,如果有需要,Python 可通过线程通信来保证线程协调运行。假设系统中有两个线程,这两个线程分别代表存款者和取钱者,现在假设系统有一种特殊的要求,即要求存款者和取钱者不断地重复存款、取钱的动作,而且要求每当存款者将
阅读全文
摘要:有一种线程,它是在后台运行的,它的任务是为其他线程提供服务,这种线程被称为“后台线程(Daemon Thread)”,又称为“守护线程”或“精灵线程”。Python 解释器的垃圾回收线程就是典型的后台线程。后台线程有一个特征,如果所有的前台线程都死亡了,那么后台线程会自动死亡。调用 Thread 对
阅读全文
摘要:Python线程的生命周期(新建、就绪、运行、阻塞和死亡) 当线程被创建并启动后,并不会直接进入执行状态,也不会一直处于执行状态,线程的生命周期中,它会经历新建(new)、就绪(Ready)、运行(Running)、阻塞(Blocked)和死亡(Dead)5 种状态。当线程启动以后,它不可能一直“霸
阅读全文
摘要:# 1.使用 threading 模块中 Thread 类的构造器创建线程。即直接对类 threading.Thread 进行实例化,并调用实例化对象的 start 方法创建线程。 # 2.继承 threading 模块中的 Thread 类创建线程类。即用 threading.Thread 派生出一个新的子类,将新建类实例化,并调用其 start 方法创建线程。 """ 调用 Thread 类...
阅读全文
摘要:# 我们用 hasattr() 函数判断指定属性(或方法)是否存在, # 但到底是属性还是方法,则需要进一步判断它是否可调用。 # 程序可通过判断该属性(或方法)是否包含 __call__ 属性来确定它是否可调用 class User: def __init__(self, name, passwd): self.name = name self.pas...
阅读全文
摘要:# Python 提供了如下两个函数来检查类型: # issubclass(cls, class_or_tuple):检查 cls 是否为后一个类或元组包含的多个类中任意类的子类. # isinstance(obj, class_or_tuple):检查 obj 是否为后一个类或元组包含的多个类中任意类的对象(实例). # 定义一个字符串 hello = "Hello"; # "Hello"是st
阅读全文
摘要:# 就像我们生活中会产生垃圾一样,程序在运行过程当中也会产生垃圾 # 程序运行过程中产生的垃圾会影响到程序的运行的运行性能,所以这些垃圾必须被及时清理 # 没用的东西就是垃圾 # 在程序中没有被引用的对象就是垃圾,这种垃圾对象过多以后会影响到程序的运行的性能 # 所以我们必须进行及时的垃圾回收,所谓的垃圾回收就是讲垃圾对象从内存中删除 # 在Python中有自动的垃圾回收机制,它会自动将这些没有被
阅读全文
摘要:# 特殊方法,也称为魔术方法 # 特殊方法都是使用__开头和结尾的 # 特殊方法一般不需要我们手动调用,需要在一些特殊情况下自动执行 # 定义一个Person类 class Person(object): """人类""" def __init__(self, name , age): self.name = name self.age = age # __str__()这个特殊方法会在尝试将对象
阅读全文
摘要:class MyCircularQueue: def __init__(self, k: int): """ Initialize your data structure here. Set the size of the queue to be k. """ self.k=k self.front=-1 ...
阅读全文

浙公网安备 33010602011771号