2017年8月1日

python的virtualenv环境与使用

摘要: 1、安装virtualenv 在安装virtualenv之前,我们需要安装至少有一个版本的Python;因为virtualenv是python的一个第三方模块,必须基于python环境才能安装; 如果你的python环境有pip,那么直接使用命令:pip install virtualenv 安装即 阅读全文

posted @ 2017-08-01 15:15 lpx15312 阅读(270) 评论(0) 推荐(0) 编辑

飘逸的python - 装饰器的本质

摘要: 很多人把装饰器搞的很复杂,其实本质很简单. 首先,什么是装饰器呢?在代码中发现戴着@xxx帽子的,就是装饰器. 那要怎么自己定义一个装饰器呢? 其实任何一个接收一个参数的callable都可以用来做装饰器,比如函数和类.为方便起见,下面的例子都用函数来说明. 这里,deco就可以做装饰器 "戴帽"其 阅读全文

posted @ 2017-08-01 13:06 lpx15312 阅读(193) 评论(0) 推荐(0) 编辑

飘逸的python - 单例模式乱弹

摘要: 方法一:装饰器 利用“装饰器只会执行一次”这个特点 方法二:基类 利用“类变量对所有对象唯一”,即cls._instance 方法三:metaclass 利用“类变量对所有对象唯一”,即cls._instance 方法四:Borg模式 利用“类变量对所有对象唯一”,即__share_state 方法 阅读全文

posted @ 2017-08-01 13:00 lpx15312 阅读(322) 评论(0) 推荐(0) 编辑

飘逸的python - __new__、__init__、__call__傻傻分不清

摘要: __new__: 对象的创建,是一个静态方法,第一个参数是cls。(想想也是,不可能是self,对象还没创建,哪来的self) __init__ : 对象的初始化, 是一个实例方法,第一个参数是self。 __call__ : 对象可call,注意不是类,是对象。 先有创建,才有初始化。即先__ne 阅读全文

posted @ 2017-08-01 12:55 lpx15312 阅读(141) 评论(0) 推荐(0) 编辑

飘逸的python - @staticmethod和@classmethod的作用与区别

摘要: 一般来说,要使用某个类的方法,需要先实例化一个对象再调用方法。 而使用@staticmethod或@classmethod,就可以不需要实例化,直接类名.方法名()来调用。 这有利于组织代码,把某些应该属于某个类的函数给放到那个类里去,同时有利于命名空间的整洁。 既然@staticmethod和@c 阅读全文

posted @ 2017-08-01 12:48 lpx15312 阅读(220) 评论(0) 推荐(0) 编辑

导航