07 2019 档案

摘要:阅读目录(Content) 单例模式 实现单例模式的几种方式 1.使用模块 2.使用装饰器 3.使用类 4.基于__new__方法实现(推荐使用,方便) 5.基于metaclass方式实现 相关知识 实现单例模式 回到顶部(go to top) 单例模式 单例模式(Singleton Pattern 阅读全文
posted @ 2019-07-31 01:07 ليو 阅读(146) 评论(0) 推荐(0)
摘要:阅读目录(Content) 一、 type() 1、创建类的两种方式 方式一 方式二 二、元类(metaclass) 使用metaclass的两种方式 方式一:即用类的形式 方式二:用函数的形式 metaclass 原理 1.基础 2.查找顺序 三、 __init__,__new__,__call_ 阅读全文
posted @ 2019-07-31 01:01 ليو 阅读(230) 评论(0) 推荐(0)
摘要:任何事物都有一个从创建,被使用,再到消亡的过程,在程序语言面向对象编程模型中,对象也有相似的命运:创建、初始化、使用、垃圾回收,不同的阶段由不同的方法(角色)负责执行。 定义一个类时,大家用得最多的就是 __init__ 方法,而 __new__ 和 __call__ 使用得比较少,这篇文章试图帮助 阅读全文
posted @ 2019-07-31 01:00 ليو 阅读(238) 评论(0) 推荐(0)
摘要:1 class A(object): 2 def __init__(self,*args, **kwargs): 3 print "init A" 4 def __new__(cls,*args, **kwargs): 5 print "new A %s"%cls 6 #return super(A 阅读全文
posted @ 2019-07-30 21:15 ليو 阅读(164) 评论(0) 推荐(0)
摘要:基本概念 Class 类一个类即是对一类拥有相同属性的对象的抽象、蓝图、原型。在类中定义了这些对象的都具备的属性(variables(data))、共同的方法 Object 对象 一个对象即是一个类的实例化后实例,一个类必须经过实例化后方可在程序中调用,一个类可以实例化多个对象,每个对象亦可以有不同 阅读全文
posted @ 2019-07-28 14:17 ليو 阅读(110) 评论(0) 推荐(0)
摘要:1.1.鸭子类型和多态 “当看到一只鸟走起来像鸭子、游泳起来像鸭子、叫起来也像鸭子,那么这只鸟就可以被称为鸭子。” 我们并不关心对象是什么类型,到底是不是鸭子,只关心行为。 实例一: # 鸭子类型和多态简单实例 class Dog(object): def say(self): print('a d 阅读全文
posted @ 2019-07-28 14:16 ليو 阅读(145) 评论(0) 推荐(0)
摘要:常用快捷键 快捷键功能 Ctrl + Q 快速查看文档 Ctrl + F1 显示错误描述或警告信息 Ctrl + / 行注释(可选中多行) Ctrl + Alt + L 代码格式化 Ctrl + Alt + O 自动导入 Ctrl + Alt + I 自动缩进 Tab / Shift + Tab 缩 阅读全文
posted @ 2019-07-25 18:13 ليو 阅读(173) 评论(0) 推荐(0)
摘要:阅读目录 一、什么是面向过程、面向对象的程序设计 二、类和对象 三、属性查找 四、继承和派生 五、多态和封装 六、绑定方法与非绑定方法 七、Python中关于OOP的常用术语 八、类的装饰器(简单补充) 九、metaclass 回到顶部 一、什么是面向过程、面向对象的程序设计 面向过程的程序设计:核 阅读全文
posted @ 2019-07-24 23:21 ليو 阅读(162) 评论(0) 推荐(0)
摘要:1 浅拷贝 l1 = [1,2[1,2]] l1 = [1, 2, [1,2]] # 分析深浅拷贝 浅拷贝对于不可变的是的数据类型是指针指向沿用原来的,对可变的数据类型还是沿用原来的对象,所以对外不可变的数据类型不会相互改变这一点和 深拷贝也是一样的,而不同的是浅拷贝对于可变的数据类型是沿用而不是重 阅读全文
posted @ 2019-07-23 08:38 ليو 阅读(134) 评论(0) 推荐(0)
摘要:阅读目录 认识模块 什么是模块 模块的导入和使用 常用模块一 collections模块 时间模块 random模块 os模块 sys模块 序列化模块 re模块 常用模块二 hashlib模块 configparse模块 logging模块 认识模块 返回顶部 什么是模块 什么是模块? 常见的场景: 阅读全文
posted @ 2019-07-22 08:43 ليو 阅读(170) 评论(0) 推荐(0)
摘要:hashlib模块 加密的模块 import hashlib # 这个加密的过程是无法解密的 md = hashlib.sha3_256() # 生成一个帮你造密文的对象 # md.update('hello'.encode('utf-8')) # 往对象里传明文数据 update只能接受bytes 阅读全文
posted @ 2019-07-19 19:22 ليو 阅读(113) 评论(0) 推荐(0)
摘要:import os import sys BASEDIR = os.path.dirname(os.path.dirname(__file__)) PATH = os.path.join(BASEDIR, 'db') sys.path.append(PATH) import logging.conf 阅读全文
posted @ 2019-07-19 19:06 ليو 阅读(92) 评论(0) 推荐(0)
摘要:常用模块 阅读目录 认识模块 什么是模块 模块的导入和使用 常用模块一 collections模块 时间模块 random模块 os模块 sys模块 序列化模块 re模块 常用模块二 hashlib模块 configparse模块 logging模块 认识模块 返回顶部 什么是模块 什么是模块? 常 阅读全文
posted @ 2019-07-18 23:35 ليو 阅读(158) 评论(0) 推荐(0)
摘要:OS 模块 #os模块就是对操作系统进行操作,使用该模块必须先导入模块: import os #getcwd() 获取当前工作目录(当前工作目录默认都是当前文件所在的文件夹) result = os.getcwd() print(result) #chdir()改变当前工作目录 os.chdir(' 阅读全文
posted @ 2019-07-18 23:24 ليو 阅读(438) 评论(0) 推荐(0)
摘要:正则表达式 正则表达式本身是一种小型的、高度专业化的编程语言,而在python中,通过内嵌集成re模块,程序员们可以直接调用来实现正则匹配。正则表达式模式被编译成一系列的字节码,然后由用C编写的匹配引擎执行。 正则表达式是用来匹配处理字符串的 python 中使用正则表达式需要引入re模块 如: i 阅读全文
posted @ 2019-07-18 23:14 ليو 阅读(564) 评论(0) 推荐(0)
摘要:re模块 讲正题之前我们先来看一个例子:https://reg.jd.com/reg/person?ReturnUrl=https%3A//www.jd.com/ 这是京东的注册页面,打开页面我们就看到这些要求输入个人信息的提示。假如我们随意的在手机号码这一栏输入一个11111111111,它会提示 阅读全文
posted @ 2019-07-17 16:11 ليو 阅读(445) 评论(0) 推荐(0)
摘要:为什么要设计好目录结构? 主要是两个方面: 可读性高: 不熟悉这个项目的代码的人,一眼就能看懂目录结构,知道程序启动脚本是哪个,测试目录在哪儿,配置文件在哪儿等等。从而非常快速的了解这个项目。 可维护性高: 定义好组织规则后,维护者就能很明确地知道,新增的哪个文件和代码应该放在什么目录之下。这个好处 阅读全文
posted @ 2019-07-16 21:36 ليو 阅读(286) 评论(0) 推荐(0)
摘要:1 模块 一系列功能的集合体 别人:系统内置的 第三方模块 自己:自己写的模块或自己写的py文件 1 用别人写好的模块可以极大提高开发效率 2 当自己写代码较多的时候,如果将全部代码放在一个文件下,不利于我们的查找,也不利于我们的修改,这时候我们应该分成多个py文件。一个py文件就是一个模块,使用模 阅读全文
posted @ 2019-07-16 21:33 ليو 阅读(137) 评论(0) 推荐(0)
摘要:1 迭代器 迭代的定义:迭代是一个重复的过程,不同于其他纯粹的重复,迭代的每一次结果都是基于上一次迭代的结果产生的。 迭代器就是一个可以进行迭代取值的工具 作用:给我们提供了一种不依赖索引取值的方式 补充:针对双下划线开头,双下滑线结尾的方法 推荐读:双下+方法名 2 可迭代对象 内置有__iter 阅读全文
posted @ 2019-07-16 00:29 ليو 阅读(148) 评论(0) 推荐(0)
摘要:python 字符编码与转码 注意:unicode和utf-8之间不需要转换,可以直接互相打印,GBK如果需要和utf-8之间进行转换一定要通过unicode pycharm的默认编码如果不指定则会取系统的编码集,windows是默认gbk的 转换编码只在2进制文件解码编码中必须指定,如果文本文件指 阅读全文
posted @ 2019-07-12 20:43 ليو 阅读(226) 评论(0) 推荐(0)
摘要:列表推导式介绍 列表推导式是Python中快速创建列表的一种方式。 之前我们要创建(Python3中)一个元素是0~9的列表,我们可能会像下面这么写: 这么写没毛病,但是如果要稍微复杂一点的需求可能就有点棘手了,比如: 把列表[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]中的每个元素都 阅读全文
posted @ 2019-07-12 15:56 ليو 阅读(262) 评论(0) 推荐(0)
摘要:内置函数 接下来,我们就一起来看看python里的内置函数。截止到python版本3.6.2,现在python一共为我们提供了68个内置函数。它们就是python提供给你直接可以拿来使用的所有函数。这些函数有些我们已经用过了,有些我们还没用到过,还有一些是被封印了,必须等我们学了新知识才能解开封印的 阅读全文
posted @ 2019-07-12 15:49 ليو 阅读(162) 评论(0) 推荐(0)
摘要:1.递归函数 在函数内部,可以调用其他函数。如果一个函数在内部调用自身本身,这个函数就是递归函数。 递归函数特性: 先举个简单的例子:计算1到100之间相加之和;通过循环和递归两种方式实现 # 循环方式 # 循环方式 def sum_cycle(n): def sum_cycle(n): sum = 阅读全文
posted @ 2019-07-12 14:54 ليو 阅读(481) 评论(0) 推荐(0)
摘要:Python中enumerate用法详解 enumerate()是python的内置函数、适用于python2.x和python3.xenumerate在字典上是枚举、列举的意思enumerate参数为可遍历/可迭代的对象(如列表、字符串)enumerate多用于在for循环中得到计数,利用它可以同 阅读全文
posted @ 2019-07-12 12:02 ليو 阅读(725) 评论(0) 推荐(0)
摘要:1.模板 2.原理 3.语法糖@ 如果有多个装饰器,我们直接书写比较麻烦,而且重复率比较高。为了解决这个问题,Python给我们提供了一个方法,就是语法糖@。 装饰器 @outer 下面是被装饰的对象 这个@就相当于: index = outer(index) index() 4.wraps fro 阅读全文
posted @ 2019-07-12 01:32 ليو 阅读(186) 评论(0) 推荐(0)
摘要:为什么要有装饰器? 开放封闭原则 对扩展是开放的 对修改是封闭的 什么是装饰器? 从字面上讲它也是一个工具,装饰其他对象(可调用对象)的工具 装饰器的本质 装饰器本质上可以是任意可调用对象,被装饰的对象也可以是任意可调用对象。 装饰器的功能 在不修改被装饰对象源代码以及调用方式的前提下为它添加新功能 阅读全文
posted @ 2019-07-12 00:53 ليو 阅读(131) 评论(0) 推荐(0)
摘要:Python中的闭包 Python中的闭包 讲装饰器之前,先来说一下闭包。 闭包的由来 首先我们需要知道,我们是可以在函数中再定义一个函数的(嵌套函数)。 就像这样: 此时我们调用 foo 函数,会得到一个其内部定义的 bar 函数。我们把 foo 函数的返回值赋值给一个变量就可以使用这个变量来调用 阅读全文
posted @ 2019-07-11 22:33 ليو 阅读(185) 评论(0) 推荐(0)
摘要:python格式化输出之format用法 format用法 相对基本格式化输出采用‘%’的方法,format()功能更强大,该函数把字符串当成一个模板,通过传入的参数进行格式化,并且使用大括号‘{}’作为特殊字符代替‘%’ 使用方法由两种:b.format(a)和format(a,b)。 1、基本用 阅读全文
posted @ 2019-07-11 17:25 ليو 阅读(1076) 评论(0) 推荐(0)
摘要:假如有一个函数,实现返回两个数中的较大值: def my_max(x,y): m = x if x>y else y return mbigger = my_max(10,20)print(bigger) 之前是不是我告诉你们要把结果return回来你们就照做了?可是你们有没有想过,我们为什么要把结 阅读全文
posted @ 2019-07-10 23:15 ليو 阅读(165) 评论(0) 推荐(0)
摘要:1.站在形参的角度看 *形参中的*会将多余的(溢出的)位置实参 统一用元组的形式处理 传递给*后面的形参名 def func(x,y,*z): print(x,y,z) # z = (3, 4, 5, 6, 7, 8, 54, 43, 4, 5, 6, 6, 7, 8) func(1,2,3,4,5 阅读全文
posted @ 2019-07-09 16:30 ليو 阅读(147) 评论(0) 推荐(0)
摘要:python中常见的内置类型 什么是魔法函数? python的魔法函数总被双下划线包围,它们可以给你的类增加特殊的方法。如果你的对象实现了这些方法中的一个,那么这个方法就会在特殊情况下被调用,你可以定义想要 的行为,而这一切都是自动发生的。 魔法函数一览 魔法函数举例 1.1.__getitem__ 阅读全文
posted @ 2019-07-09 15:17 ليو 阅读(130) 评论(0) 推荐(0)
摘要:文件操作方式主要分成三大类:r 和 r+ "读"功能 r 只读r+ 读写(先读后写) 辨析:对于r,只有读取功能,利用光标的移动,可以选择要读取的内容. 对于r+,同时具有读和写的功能,默认光标一开始停在开头,当进行一个操作后(无论是读还是写)光标将自动移动到末尾.写的功能如果在末尾就是添加;如果在 阅读全文
posted @ 2019-07-08 22:57 ليو 阅读(121) 评论(0) 推荐(0)
摘要:> Python 代码规范 前言 Python 学习之旅,先来看看 Python 的代码规范,让自己先有个意识,而且在往后的学习中慢慢养成习惯 目录 Python代码规范 一、简明概述 1、编码 如无特殊情况, 文件一律使用 UTF-8 编码 如无特殊情况, 文件头部必须加入#-*-coding:u 阅读全文
posted @ 2019-07-02 20:35 ليو 阅读(245) 评论(1) 推荐(0)
摘要:Python语言规范 Lint Tip 对你的代码运行pylint 定义:pylint是一个在Python源代码中查找bug的工具. 对于C和C++这样的不那么动态的(译者注: 原文是less dynamic)语言, 这些bug通常由编译器来捕获. 由于Python的动态特性, 有些警告可能不对. 阅读全文
posted @ 2019-07-02 20:29 ليو 阅读(196) 评论(2) 推荐(0)
摘要:Python风格规范 分号 Tip 不要在行尾加分号, 也不要用分号将两条命令放在同一行. 分号 Tip 不要在行尾加分号, 也不要用分号将两条命令放在同一行. Tip 不要在行尾加分号, 也不要用分号将两条命令放在同一行. 行长度 Tip 每行不超过80个字符 例外: 长的导入模块语句 注释里的U 阅读全文
posted @ 2019-07-02 20:28 ليو 阅读(338) 评论(1) 推荐(0)
摘要:1、流程控制语句for: 1.格式一: for 变量 in iterable: pass 1 s = 'abcd' 2 for i in s: 3 print(i) View Code 2.格式二: for 变量 in iterable: if 条件: break(或者continue) pass 阅读全文
posted @ 2019-07-02 20:23 ليو 阅读(160) 评论(0) 推荐(0)
摘要:1 用户与程序交互 注释 代码注释分单行和多行注释, 单行注释用#,多行注释可以用三对双引号""" """ 代码注释的原则: 文件头 2 基本数据类型 什么是数据?为何要有多种类型的数据? 数字 #int(整型) 在32位机器上,整数的位数为32位,取值范围为-2**31~2**31-1,即-214 阅读全文
posted @ 2019-07-01 18:57 ليو 阅读(186) 评论(0) 推荐(0)
摘要:1 变量 1.1 什么是变量? 1.2 变量的组成 (1) 变量名:描述变量的信息。 (2) 赋值符号‘=’:建立变量名与值的绑定关系。 (3) 值。 1.3 变量的命名规则 (1) 变量只能由数字、下划线和英文字母组成。 (2) 变量不能以数字开头。 (3) 变量不能用关键字。 注意:变量尽量不用 阅读全文
posted @ 2019-07-01 18:41 ليو 阅读(240) 评论(0) 推荐(0)