随笔分类 -  Python

摘要:如果你的网站通过 Nginx 代理,那么本文将为你提供一个自动统计网站访问量的方案。 方案在实现步骤上,一个分为三步: 1. 运行 shell 脚本,移动 Nginx 日志到指定文件夹,并运行 Python 脚本; 2. 执行 Python 脚本,统计有效的 IP 访问量 3. 设置 crontab 阅读全文
posted @ 2019-05-02 19:58 Railg-Kai 阅读(377) 评论(0) 推荐(0)
摘要:一、安装 Python3.7 1. 官网下载包,通过ftp上传到linux 服务器 2. 解压, 进入目录 3. 安装依赖包 yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline 阅读全文
posted @ 2019-03-31 18:13 Railg-Kai 阅读(1094) 评论(0) 推荐(0)
摘要:1 异步程序依然会假死 freezing 上面的例子中,hello1是一个耗时3s的异步任务,main也是一个异步方法,但是main需要调用hello1的返回值,所以必须登台hello1执行完成才能继续执行main,这说明异步也是会有阻塞的。 而之前定义的异步函数不用等待是因为事件循环将所有的异步操 阅读全文
posted @ 2019-02-14 19:27 Railg-Kai 阅读(2044) 评论(2) 推荐(0)
摘要:asyncio的核心概念与基本架构 本文针对的是python3.4以后的版本的,因为从3.4开始才引入asyncio,后面的3.5 3.6 3.7版本是向前兼容的,只不过语法上面有稍微的改变。比如在3.4版本中使用@asyncio.coroutine装饰器和yield from语句,但是在3.5以后 阅读全文
posted @ 2019-02-14 16:21 Railg-Kai 阅读(1112) 评论(0) 推荐(0)
摘要:1 进程和线程 进程 Process:一个正在运行的应用程序在操作系统中被视为一个进程,进程可以包括一个或多个线程。线程是操作系统分配处理器时间的基本单元,在进程中可以有多个线程同时执行代码。进程之间是相对独立的,一个进程无法访问另一个进程的数据(除非利用分布式计算方式)。 线程 Thread: 线 阅读全文
posted @ 2019-02-14 16:18 Railg-Kai 阅读(233) 评论(0) 推荐(0)
摘要:1 yiled from 的定义 从字面看是yield的升级改进版本,如果将 yield 理解成返回,那么 yield from 就是从哪里返回。 yield from 返回另一个生成器。而yield 只返回一个元素。有下面的等价关系: yield from iterable == for item 阅读全文
posted @ 2019-02-14 16:14 Railg-Kai 阅读(209) 评论(0) 推荐(0)
摘要:1 什么是协程 coroutine 协程: 又称微线程,纤程。在一个线程内执行。 子程序: 函数,调用是通过栈来实现的。一个调用一个返回。 多线程: 避免程序顺序执行的方式之一是多线程。GIL锁只能一个点一个线程,对于io操作会有性能提升,但是依然 有线程的管理和切换,同步的开销等等 协程与一般函数 阅读全文
posted @ 2019-02-14 16:06 Railg-Kai 阅读(256) 评论(0) 推荐(0)
摘要:gc主要使用引用计数 reference counting 来跟踪和回收垃圾,在引用计数的基础上,通过标记-删除解决容器对象可能产生的循环引用问题,通过分代回收以空间换时间的方法提高垃圾回收效率。 引用计数,当一个对象被引用时,它的引用计数+1 ,当引用的对象被删除时,引用计数-1 。当引用计数为0 阅读全文
posted @ 2019-02-14 15:47 Railg-Kai 阅读(134) 评论(0) 推荐(0)
摘要:Python 3.x介绍的一些Python 2不兼容的关键字和特性可以通过在Python 2的内部__future__模块导入。 基本点,range,新式类,mro,asyncio。 0,字符串类型统一,只有str和bytes(字节序列)。Python2 的默认编码是 asscii(原因在于 Pyt 阅读全文
posted @ 2019-02-14 15:46 Railg-Kai 阅读(438) 评论(0) 推荐(0)
摘要:global interpreter lock,即python为了保护线程安全而采取的独立线程运行的限制。就是一个内核在一个时间点只能运行一个线程,对于io密集型任务,多线程能起到作用,对于cpu密集型,对线程就无能无力,反而还会因为争夺资源而变慢。 要理解GIL,就要从python的底层说起。 c 阅读全文
posted @ 2019-02-14 15:44 Railg-Kai 阅读(166) 评论(0) 推荐(0)
摘要:列表是一个线性的集合,它允许用户在任何位置插入、删除、访问和替换元素。 list对象是用c结构来实现,由一个保存元素的指针数组和预先分配的内存总容量构成。分离式结构,两者之间用一个元素建立一个链接,连在一起。能够根据元素的数量自动的扩充或者缩小list的内存大小。 扩充采取两种策略,每次扩充增加固定 阅读全文
posted @ 2019-02-14 15:44 Railg-Kai 阅读(454) 评论(0) 推荐(0)
摘要:单例模式是一种常用的软件设计模式,核心结构是只包含一个被称为单例类的特殊类,通过单例模式可以保证系统中只有一个实例而且该实例易于外界访问,从而控制实例数量来保证系统资源的节省。可以用于打印任务,以及类中实例只有一个的情况下。单例模式设计的类只能实例,单例的四种方法要了解,类的call方法要能默写。 阅读全文
posted @ 2019-02-14 15:42 Railg-Kai 阅读(176) 评论(0) 推荐(0)
摘要:创建方法上,新式类继承 object,或者说在创建的时候内置object对象。 经典类是直接声明的。 一个关键的区别就是新式类能够从python的内置类型中继承,而经典类不行。 新式类内置的object 对象是所有内置,通过其来实现所有对象的默认行为: new,init方法,静态方法new创建类的实 阅读全文
posted @ 2019-02-14 15:39 Railg-Kai 阅读(298) 评论(0) 推荐(0)
摘要:非算数运算符 __del__ 与 弱引用 不是每个 Python 对象都可以作为弱引用的目标(或称所指对象)。基本的 list 和 dict 实 例不能作为所指对象,但是它们的子类可以轻松地解决这个问题. 但是,int 和 tuple 实例不能作为弱引用的目标,甚至它们的子类也不行。这些局限基本上是 阅读全文
posted @ 2019-01-04 19:46 Railg-Kai 阅读(360) 评论(0) 推荐(0)
摘要:一、闭包函数的概述 闭包 closure, 是一种代码的组织结构。当一个内嵌函数引用其外部作用域的变量,就形成一个闭包函数。闭包函数有一个内嵌函数,内嵌函数引用外部函数中的变量,外部函数的返回值是内嵌函数。 闭包是函数和所引用环境变量的组合体。闭包让函数持有状态,延长环境变量的生命周期。类似类里的类 阅读全文
posted @ 2019-01-04 19:30 Railg-Kai 阅读(254) 评论(0) 推荐(0)
摘要:继承父类中对象和方法的语法 从逻辑上来说,如果学生有打游戏的技能,而老师并没有这个需求,因此继承到了老师并不需要的技能 正确姿势: 抽取公共的父类 (抽象) 抽象 : 抽取多个类中相同得部分,形成另一个类 把学生和老师共有的内容抽到另一个类中,学生和老师分别继承这个类,这样就避免了一个类继承到不需要 阅读全文
posted @ 2018-12-24 10:20 Railg-Kai 阅读(122) 评论(0) 推荐(0)
摘要:import re print(re.findall('\w9\w','axsdas9xas,_9xdsas_91')) ​ #\w,字母数字下划线,中间的必须为9 print(re.findall('\W','wgks++++=10==100')) ​ #\W,非字母数字下划线,和\w 相反 print(re.findall('\s',' wangk a... 阅读全文
posted @ 2018-12-06 14:01 Railg-Kai 阅读(237) 评论(0) 推荐(0)