![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
python
星星爱吃面
这个作者很懒,什么都没留下…
展开
-
基于asyncio库实现Python协程(Coroutines)及源码解析
asyncio是什么(官方文档入口) asyncio is a library to write concurrent code using the async/await syntax. 官方文档里给的定义如上,简单来说就是用asyncio库里的async/await 语法来写一个异步代码。 asyncio库通常用来写高性能网络、web服务器、分布式任务队列等Python异步框架。 使用async/await创建一个简单的协程用例 import asyncio import time asy.原创 2020-11-19 21:11:42 · 501 阅读 · 0 评论 -
Ubuntu下创建Python虚拟环境
这里写自定义目录标题 1.首先安装必要包 sudo pip install virtualenv sudo pip install virtualenvwrapper 2.在家目录下创建目录用来存放虚拟环境 # 打开.bashrc文件 vim ~/.bashrc # 在最后添加一下3行 export WORKON_HOME=$HOME/.virtualenvs export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3 source /usr/local/bin/vi原创 2020-11-04 21:47:44 · 207 阅读 · 0 评论 -
Python: 装饰器运行原理、__call__方法及用类作装饰器
我们先来看一个嵌套函数 def outliner(): def inliner(name): print(f"这是一个{name}") return inliner f = outliner() # f 实际上是指向inliner这个函数 print(f"这是inliner的地址{f}") f("闭包") # 这儿实例化f,实际上是实例化inliner, 也就算执行 inliner("闭包") # 运行结果 这是inliner的地址<function outline原创 2020-05-15 15:51:00 · 402 阅读 · 0 评论 -
Python:两种魔法参数 *args和**kwargs的用法
首先定义一个带有两个常规参数的求和函数,传入一个参数arg1,arg2 def sum(arg1, arg2): print(arg1 + arg2) sum(2, 3) 那如果要求5个参数求和,那就需要更改函数内部代码,使其变得更加累赘。所以这时候我们就可以通过传入魔法参数去处理。 def sum(*args): print(args) print(type(args)) # 元组类型 su = 0 for arg in args: su += arg原创 2020-05-13 23:52:40 · 531 阅读 · 1 评论 -
Python里的类方法(classmethod)和静态方法(staticmethod)
我们先来定义一个普通的类 class Demo: def __init__(self): pass def common_method(self): # 这是一个普通方法 print("this is a common method") demo = Demo() demo.common_method() 在上面这块代码中,我们可以看到,类里面的普通方法,我们必须先把类实例化后才能引用。那有没有一种办法,我们不用实例化直接引用呢? 这儿介绍第一种特原创 2020-05-13 00:33:54 · 448 阅读 · 0 评论 -
Python内存管理(内存分配及垃圾回收)
1 Python垃圾回收 首先引入变量和对象的概念: (1)对象:具有已知类型、每个对象都包含有头部信息,标识类型和引用计数器。 (2)变量:其实是一种指针,指向对象;其指向对象的内存空间,内存空间内的值。 接下来我们先做一个例子,创建一个对象和关联一个变量: varible1 = 33 # 其中33就是一个对象,variable1就是引用这个对象的变量 varible1 Out[2]: ...原创 2020-04-25 14:30:31 · 508 阅读 · 0 评论