摘要:协程(Coroutine),也可以被称为微线程,是一种用户态内的上下文切换技术。简而言之,其实就是通过一个线程实现代码块相互切换执行。协程不是计算机提供,程序员人为创造。 实现协程有这么几种方法: greenlet,早期模块。 yield关键字。 asyncio装饰器(py3.4) async、aw
阅读全文
摘要:python中的装饰器(decorator)一般采用语法糖的形式,是一种语法格式。比如:@classmethod,@staticmethod,@property,@xxx.setter,@wraps(),@func_name等都是python中的装饰器。 装饰器,装饰的对象是函数或者方法。各种装饰器
阅读全文
摘要:Python 中实现链式调用通常使用方法链(Method Chaining)技术。方法链可以通过在每个方法末尾返回实例本身(即 self)来实现。 如: class Person: def __init__(self,name,age): self.name = name self.age = ag
阅读全文
摘要:islice是Python中的一个函数,用于对可迭代对象进行切片操作,可以实现类似于切片操作一样的功能,但又不像切片那样需要先将整个序列读入内存,从而节省内存。 islice函数是通过生成器来实现对可迭代对象的切片,从而避免了将整个序列读入内存的限制,可以节省大量的内存。使用islice函数需要导入
阅读全文
摘要:isocalendar() 是 datetime 模块下的一个函数,用于将给定日期表示为 ISO 日历格式的(年,周数,星期几)元组。具体来说,该函数返回一个包含年份、ISO周数和星期几的三个元素的元组,并且可以通过该元组来更方便地处理日期数据。 该函数的语法格式如下: datetime.isoca
阅读全文
摘要:最大区别: relativedelta模块功能更加全面而强大,时间差支持years, months;而timedelta不支持years, months。 relativedelta 是 dateutil 库中的一个类,可以在 Python 中处理时间差异问题。它允许我们在两个日期之间计算时间差、时
阅读全文
摘要:该报错是一个python中常见的错误,通常在使用for 循环迭代字典时删除其中的元素时出现。这个问题的根本原因在于迭代字典的同时修改了它,导致字典的大小发生了变化。 如下面的例子,就会报错: d = {"a":1,"b":2,"c':3} for k,v in d.items(): if v ==
阅读全文
摘要:1、什么是抽象类? 如果说,类是对一堆对象共同内容的抽取,那么抽象类就是对一堆类共同内容的抽取,包括:属性和方法。 2、抽象类的特点 (1)抽象类必须包含一个或多个抽象方法,也可以包含普通方法。(2)抽象类的抽象方法,在抽象类中并不作实现。(3)抽象类不能被实例 (4)抽象类的子类要想进行实例化,必
阅读全文
摘要:在python中,有一个字典 a = {"name":"li"} 如果使用下面,方法,键值对不存在,会报错 b = a["age"] 使用下面防范,如果键值对不存在,则不会报错 c = a.get("age") print(c) # None
阅读全文
摘要:在django中,从数据库拿到的数据:a = "[1,2]" 对此,进行了序列化操作: b = json.loads(a) # [1,2] 结果打印类型,发现还是str, 必须,b = json.loads(b) 再次序列化才行。
阅读全文
摘要:a = [{"id":1,"count":29},{"id':1,"count":39}] ids = list(set([u["id"] for u in a])) # [1,] b = [] for id in ids: count = 0 for u in a: if id in u.get(
阅读全文
摘要:在一个函数外有一个变量,如何在函数中调用该全局变量: 1.不可变数据类型,则需要在函数中用到关键字global a ="222" def func(): global a a += "111" print(a) # 222 func() # print(a) # 222111 2.不可变数据类型,则
阅读全文
摘要:魔法方法(Magic Method)是python内置方法,格式为:“__方法名__”,不需要主动调用,存在的目的是为了给python的解释器进行调用,几乎每个魔法方法都有一个对应的内置函数,或者运算符,当我们对这个对象使用这些函数或者运算符时就会调用类中的对应魔法方法,可以理解为重写这些pytho
阅读全文
摘要:一、striftime 将给定格式的日期时间对象转换为字符串。日期时间对象=>字符串,控制输出格式.date、datetime、time对象都支持strftime(format) 方法,可用来创建由一个显式格式字符串所控制的表示时间的字符串。 用法:datetime.strftime(format)
阅读全文
摘要:isinstance()用来判断一个对象是否是一个已知的类型,isinstance()函数的语法如下: isinstance(object,classtype) object -- 实例对象。 classtype -- 可以是直接或间接类名、基本类型或者由它们组成的元组。 isinstance()函
阅读全文
摘要:一、sys.argv 是获取运行python文件的时候命令行参数,且以list形式存储参数 其中,sys.argv[0] 代表当前module的名字 以下用代码举例: import sys a = sys.argv b = len(sys.argv) print(a) print(b) 打印结果如下
阅读全文
摘要:any()源码: def any(*args, **kwargs): # real signature unknown """ Return True if bool(x) is True for any x in the iterable. If the iterable is empty, re
阅读全文
摘要:一、列表中去重 一、使用for循环实现列表去重 此方法去重后,原顺序保持不变。 # for循环实现列表去重 list1 = ['a', 'b', 1, 3, 9, 9, 'a'] list2 = [] for l1 in list1: if l1 not in list2: list2.append
阅读全文
摘要:eval是Python的一个内置函数,这个函数的作用是,返回传入字符串的表达式的结果。即变量赋值时,等号右边的表示是写成字符串的格式,返回值就是这个表达式的结果。 语法: eval(expression[, globals[, locals]]) expression : 表达式。 globals
阅读全文
摘要:使用python中的socket库,可以轻松获取主机ip和主机名。 一、获取主机名 import socket hostname = socket.gethostname() print(hostname) # DESKTOP-AAI12V0 二、获取主机IP def get_host_ip():
阅读全文