python
文章平均质量分 78
Python
Junebao
去爱,去努力
展开
-
Python3.10 结构化模式匹配 PEP 634
Python3.10 结构化模式匹配 PEP 634眼看 2021 马上结束,python 发布了它的 3.10 版本,优化了错误消息,上下文管理器等内容,但更吸引我的还是结构化模式匹配。众所周之 switch 一直是 python 社区呼声比较高的一个功能,这次发布的结构化模式匹配 match 在功能上应该比 Java 或 C 中的这种 switch 强大一点。match 的语法类似于其他语言的 switch:def demo(code: int) -> str: match co原创 2021-12-28 23:03:08 · 404 阅读 · 0 评论 -
【python】生成器
生成器直接总结创建生成器的方法生成器表达式:(i for i in [1, 2])yield: 函数中出现yield这个函数就是生成器,函数(生成器)执行到yield时会返回yield后面的值,并暂停,知道下次被唤醒后会从暂停处接着执行迭代生成器: 生成器实现了python迭代协议,可以使用next()或for迭代向生成器发送消息:如果yield出现在表达式右边,下一次生成器被...原创 2020-03-27 11:31:39 · 285 阅读 · 0 评论 -
牛顿插值--python实现
from tabulate import tabulateimport sympy"""牛顿插值法"""class NewtonInterpolation: def __init__(self, x: list, y: list): self.Xi = x self.Yi = y self.difference_quotie...原创 2019-12-02 17:18:02 · 879 阅读 · 0 评论 -
python 单例模式的四种实现方法
DAY 13. 单例设计13.1 什么是单例设计一个类每次实例化返回的都是同一个对象,这种设计模式叫做单例设计,这个类叫做单例类13.2 实现单例设计的方法13.2.1 重写__new__()class Foo: def __new__(cls,*args, **kwargs): # 如果是第一次实例化,返回一个新对象 if not hasattr...原创 2019-08-03 17:08:56 · 507 阅读 · 0 评论 -
python闭包和装饰器
DAY 9. 闭包和装饰器9.1 闭包闭包就是内部函数对外部函数作用域内变量的引用可以看出闭包是针对函数的,还有两个函数,内部函数和外部函数闭包是为了让内部函数引用外部函数作用域内的变量的我们先写两个函数def fun1(): print("我是fun1") def fun2(): print("我是fun2")这样fun2就作为fun1...原创 2019-07-22 22:15:55 · 252 阅读 · 0 评论 -
python 经典类和新式类
DAY 12. python新式类和旧式类继承自object基类的类叫做新式类,否则叫做旧式类,python3中的类默认是新式类,之前版本默认是旧式类root@kail:~# pythonpython 2.7.15 (default,Jul 28 2018,11:29:29)[GCC 8.1.0] on linux2Type "help", "copyright", "credits" ...原创 2019-07-27 22:57:56 · 204 阅读 · 0 评论 -
python 垃圾回收机制
DAY 18. python垃圾回收机制python GC主要有三种方式引用计数标记清除分代回收其中,以引用计数为主。18.1 引用计数(Reference Counting)《寻梦环游记》中说,人一生会经历两次死亡,一次是肉体死的时候,另一次是最后一个记得你的人也忘了你时,当一个人没有人记得的时候,才算真的死亡。垃圾回收也是这样,当最后一个对象的引用死亡时,这个对象就会变成垃圾...原创 2019-08-19 17:59:56 · 828 阅读 · 0 评论 -
力扣交替打印FooBar
这道题要注意的是两个线程唤醒和等待的顺序,应为第一个线程会比第二个线程更早结束,所以如果第一个线程已经结束,而第二个线程还在等待被唤醒,那第二个线程会一直等待下去,因此第一个线程要先等待后唤醒,这样他会先唤醒第二个线程再结束语无伦次,直接看代码吧from threading import Condition, Threadimport timedef printFoo(): ...原创 2019-08-10 19:27:46 · 301 阅读 · 0 评论 -
python多进程
DAY 15. python多进程15.1 进程与程序程序是计算机存储中一个可执行二进制文件,是静态的,没有占用计算机资源,进程是程序执行后产生的,是可以调用计算机资源的。15.2 python进程的创建python创建与管理进程依赖multiprocessing模块,创建进程的方法与创建线程的方法类似,都是使用模块中的Process类,可以显式的实例化该类并调用start()方法来创建,...原创 2019-08-17 16:41:15 · 206 阅读 · 0 评论 -
python实现哈希表
# python 实现哈希表class HashTable: """ 哈希函数的构造 解决冲突 """ def __init__(self, source): self.source = source self._index = [] self._val = [] self.table =...原创 2019-09-06 22:35:55 · 2849 阅读 · 0 评论 -
python上下文管理器
DAY 23. python上下文管理器Python 的 with 语句支持通过上下文管理器所定义的运行时上下文这一概念。 此对象的实现使用了一对专门方法,允许用户自定义类来定义运行时上下文,在语句体被执行前进入该上下文,并在语句执行完毕时退出该上下文:实现了__enter__()和__exit__(exc_type, exc_val, exc_tb)方法的对象就是上下文管理器,上下文管理...原创 2019-10-07 16:17:57 · 232 阅读 · 0 评论 -
python 重载的实现(single-dispatch generic function)
DAY 11. python 重载函数重载是指允许定义参数数量或类型不同的同名函数,程序在运行时会根据所传递的参数类型选择应该调用的函数,但在默认情况下,python是不支持函数重载的,定义同名函数会发生覆盖def foo(a:int): print(f'int {a}')def foo(b:list): print(f'list{b}')foo(3)foo([i ...原创 2019-07-24 18:44:14 · 1131 阅读 · 0 评论 -
python *args和**kwargs以及序列解包
DAY 8. *args和**kwargs*args:多值元组,**kwargs多值字典,他们是python函数传参时两个特殊的参数,args和kwargs并不是强制的,但习惯使用这两个,如果在函数参数列表中声明了*args,则允许传递任意多的参数,多余的参数会被以元组的形式赋给args变量,而**kwargs允许你使用没有定义的变量名,会把显式传递的参数打包成字典def output(*ar...原创 2019-07-19 23:25:03 · 1213 阅读 · 0 评论 -
python多进程
多进程多进程比起多线程更加稳定,如果一个进程死掉了,并不会影响别的进程,但如果一个线程挂了,整个程序就挂了,当然,主进程要是挂了也没办法,python中multiprocessing用来支持多线程编程,他提供了Process、Queue、Pipe、Lock等组件1.进程的创建与管理Process类用来创建和管理进程,另外,可以使用Pool进行进程并发操作,调用Process()时必须放在if...原创 2019-04-19 22:37:41 · 1421 阅读 · 0 评论 -
Django,Ajax,Vue实现文章评论功能
Django评论评论复杂的地方在于需要实现点击提交评论后评论内容需要立刻出现在下面,还要保持页面位置不变,所以提交后不能整体刷新页面,因为刷新以后页面肯定在最上面,而评论一般都在最下面,所以要用到Ajax整个过程用到了Django,Vue.js,reqwest,REST_framework,ajax展示评论内容展示评论内容可以直接用Django从数据库中取出数据,然后在view中渲染到...原创 2019-08-19 19:39:09 · 4197 阅读 · 0 评论 -
Python元类(type()和metaclass)
1. 元类是什么众所周知,对象由类实例化而来,类是对象的模板,而python一切皆对象,类也是对象,它由元类(type)创建,所以元类是类的类,是类的模板2. 创建类的另一种方法一般情况下,我们使用class关键字申明一个类,就像class Demo: def __init__(self,name,age): self.name = name sel...原创 2019-07-12 22:03:35 · 571 阅读 · 0 评论 -
python静态方法,类方法,属性方法,实例方法
DAY 3. 静态方法,类方法,属性方法,实例方法有四种方法,实例方法,类方法,静态方法,属性方法实例方法实例方法的第一个参数是self,他会指向类的实例化对象,只能被对象调用,如class Demo: def instanceMethod(self): print("this is a instance method")if __name__ == "_...原创 2019-07-13 18:54:53 · 386 阅读 · 0 评论 -
python 类变量(属性)和实例变量(属性
DAY 4. 类变量(属性)和实例变量(属性)类变量:在所有类的实例之间都可以共享的变量,类变量在所有对象间只保留一份在类体中定义类的所有实例对象都可以访问类变量类变量只能由类修改,实例对象只有读权限使用对象名.类变量名 = new value不是在使用对象修改类属性,而是给对象添加了一个新属性class Demo: # 类变量 classVar = 0 ...原创 2019-07-14 22:31:51 · 826 阅读 · 0 评论 -
python自省与反射
DAY 5. python自省In computing, type introspection is the ability of a program to examine the type or properties of an object at runtime. Some programming languages possess this capability.在计算机科学中,内省是...原创 2019-07-15 23:09:44 · 1293 阅读 · 0 评论 -
python中函数的参数传递(传值还是传引用)
函数的参数传递函数参数传递有两种方式,传值和传引用,传值只是把变量的值复制一份给了实参,函数内部的操作不会改变函数外部变量的值,而传引用传递的是外部变量的地址,函数内部直接操作函数外部变量的储存空间,在调用函数之后,函数外部变量的值一般会改变def Demo(a): a = a + 1 print(id(a))if __name__ == '__main__': a...原创 2019-07-11 22:30:34 · 1280 阅读 · 0 评论 -
python格式化字符串的三种方法(%,format,f-string)
DAY 7. 格式化字符串到目前为止,我所知道的,python格式化字符串有三种方法,第一是早期就有的%,其次是2.5之后的format(),还有就是3.6添加的f字符串调试7.1 %格式化字符串%格式化字符串是python最早的,也是能兼容所有版本的一种字符串格式化方法,在一些python早期的库中,建议使用%格式化方式,他会把字符串中的格式化符按顺序后面参数替换,格式是"xxxxxx ...原创 2019-07-18 23:25:51 · 141044 阅读 · 0 评论 -
python 鸭子类型
DAY 10. 鸭子类型这个概念来源于美国印第安纳州的诗人詹姆斯·惠特科姆·莱利(James Whitcomb Riley,1849-1916)的诗句:”When I see a bird that walks like a duck and swims like a duck and quacks like a duck, I call that bird a duck.”当我看到一只像鸭...原创 2019-07-23 21:56:42 · 218 阅读 · 0 评论 -
python 生成式,迭代器,生成器
DAY 6. 生成式,迭代器,生成器6.1 生成式6.1.1 列表生成式list = [index for index in range(10)]6.1.2 字典生成式dict = { 'zhangsan': 10, 'lisi': 12, 'wangwu': 18}# 实现键值互换dict = {k:v for v,k in dict.items() i...原创 2019-07-16 22:58:10 · 197 阅读 · 0 评论 -
python序列
python序列列表python变量不存放值,之存放值的引用,所以列表中元素可以是不同类型1.常用方法1.1 增加元素append,在末尾插入元素extend,将一个列表整体插入到尾部insert,将某个元素插入到特定位+/*,拼合或拼合多个元素,该操作不是原地操作,会创建新地址上三个都是原地操作,在源地址上增删查改,最后两个会新开辟一个地址1.2 删除...原创 2019-04-01 21:12:53 · 213 阅读 · 0 评论