09 2019 档案
摘要:对象进行 == , , other.height def __lt__(self, other): return self.height
阅读全文
摘要:操作文件的方法 read 推荐for循环 然后read,write write readline,writeline readable,writeable truncate 截断,对于字节 seek 参数1移动位置 偏移的数值 参数2位置问题 0 开头位置 1 当前位置 2 结尾 flush 立刻刷
阅读全文
摘要:字符编码 decode,encode 解码,编码 文件存储读取,内存和硬盘发生的事 以python为例,python解释器启动,从硬盘读取消息到内存中,然后在内存执行该程序 utf 8 linux默认编码 python2,3中的默认编码 2为ascii,3为utf 8,字符串方面2为ascii,3为
阅读全文
摘要:from django.conf import settings 局部的配置字典 from django.conf import settings.global_settings 全局的配置字典 在manage中给os.environ配过值 对应的DJANGO_SETTINGS_MODULE 就是我
阅读全文
摘要:CBV实现类需要继承VIEW,会返回view, 对应路由的 类名, as_view 它对应的是一个类方法, 传入 实例化对象 判断对象是否有get和没有head,给head=get,然后复制, 代码健壮性校验, 之后 进去dispatch函数 , 最终结果都有dispatch决定 对应request
阅读全文
摘要:HttpResponse python class HttpResponse(HttpResponseBase): """ An HTTP response class with a string as content. This content that can be read, appended
阅读全文
摘要:Django生命周期 HTTP协议+Django简介 "HTTP协议+前戏" 数据库连接 "数据库连接丶简单setting配置和form表单request相关" 路由层 "路由层相关为主" 模版层 "模板层相关" 模型层 "模型层相关(ORM操作)" Django源码分析 "三板斧和JsonResp
阅读全文
摘要:测试ORM操作 单独的py文件测试ORM操作需要配置的参数 import os if __name__ == "__main__": os.environ.setdefault("DJANGO_SETTINGS_MODULE", "day58.settings") import django dja
阅读全文
摘要:模板语法 {{ }} 变量相关 {%%} 逻辑相关 ps: 前端获取后端传过来的容器类型的内部元素 统一采用句点符(.) 过滤器: | default {{ value|default:"nothing"}} length {{ value|length }} filesizeformat {{ v
阅读全文
摘要:路由分配 第一个参数是正则表达式,匹配规则按照从上往下一次匹配,匹配到一个之后立即匹配,直接执行对应的视图函数 分组 无名分组 无名分组(将加括号的正则表达式匹配到的内容当做位置参数自动传递给对应的视图函数) 有名分组 将加括号的正则表达式匹配到的内容当做关键字参数自动传递给对应的视图函数 注意:无
阅读全文
摘要:HTTP协议 超文本传输协议 规定了客户端与服务端消息传输的格式 四大特性 1.基于TCP/IP协议作用于应用层的协议 2.基于请求响应 3.无状态 4.无连接 数据格式之请求 请求首行 请求头(一堆k,v键值对) \r\n\r\n 请求体(post请求携带的数据) 数据格式之响应: 响应首行 响应
阅读全文
摘要:静态文件 对于前段已经写好了的文件 我们只是拿过来使用 那么这些文件都可以称之为叫"静态文件" 静态文件配置 动态解析 静态文件接口前缀"动态解析" {% load static %} form表单 默认是get请求,触发提交数据的动作两种方式 button input type=submit ge
阅读全文
摘要:前端简介 "前端简介" HTTP协议 "HTTP协议" HTML "html" CSS "css" JS "js_ECMAScript" "js_BOM_DOM" "js学习图片" jQuery "jQuery" "jQuery学习图片" "jquery文件_CDN获取" bootstrap "bo
阅读全文
摘要:sweetalert获取 "sweetalert"
阅读全文
摘要:kindeditor获取 "kindeditor地址"
阅读全文
摘要:js_EMCScript "点我,大宝贝" js_BOM_DOM "点我,大宝贝"
阅读全文
摘要:文件地址 "JQuery文件" 便捷jQuery复制CND `` CND地址 "CDN地址"
阅读全文
摘要:jQuery学习图片 "点我,大宝贝"
阅读全文
摘要:fontawesome文件获取 "fontawesome获取"
阅读全文
摘要:bootstrap 基于jQuery,也就意味着你在用bootstrap要先导入jQuery文件 布局容器 左右有固定留白 row 独占一行 全屏展示 栅格系统 一个row就表示一行(这一行默认给你均分成了12份,每一份你还可以均分成12份) 首先使用bootstrap先写一个布局容器 两边有空间
阅读全文
摘要:介绍 jQuery是一个轻量级的、兼容多浏览器的JavaScript库。 jQuery使用户能够更方便地处理HTML Document、Events、实现动画效果、方便地进行Ajax交互,能够极大地简化JavaScript编程。它的宗旨就是:“Write less, do more.“ 优势 一款轻
阅读全文
摘要:BOM window对象 常用方法: navigator对象 浏览器对象,通过这个对象可以判定用户所使用的浏览器,包含了浏览器相关信息。 screen对象 屏幕对象 history对象 浏览历史对象,包含了用户对当前页面的浏览历史 location对象 对象用于获得当前页面的地址 (URL),并把浏
阅读全文
摘要:一丶JavaScript历史 Netscape公司,决定将JavaScript提交给国际标准化组织ECMA,希望这门语言能够成为国际标准。为此体现这门语言的制定者是ECMA,而不是Netscape,这样有利于保证这门语言的开发性和中立性。后来公司倒闭了,大家就继续用,一点都不顾虑了... 因此ECM
阅读全文
摘要:bootstrap获取 "bootstrap地址" 便捷bootstrap获取CDN ps:因为bootstrap是基于jQuery开发的所以在这之前必须导入 jQuery 推荐 3版本的strap,因为IT界不建议用最新版本 `` `` `` CDN地址 "bootstrapCDN地址"
阅读全文
摘要:一丶什么是css 层叠样式表 二丶css注释 CSS注释:/ / 前端语言的注释在使用的时候通常遵循成双成对出现 / 导航条样式开始 / / 导航条样式结束 / web框架也有针对html页面的注释 该注释浏览器检查也是看不到的 称之为模板语法的注释 jinja2模块: { 模板语法注释 } 三
阅读全文
摘要:一丶什么是HTML 写网页的一套标准 二丶HTML注释 注释是代码之母 一般情况下 html的注释都会按照下面的方式书写 三丶HTML文档结构 四丶标签分类 1.双标签( ) 2.单标签(自闭和标签 ) 五丶head内常用标签 title用来显示网页标题 style用来控制样式的 内部支持写css代
阅读全文
摘要:一丶web服务的本质 1. 浏览器朝服务端发送请求 2. 服务端接受请求 3. 服务端返回相应的响应 4. 浏览器接收响应,根据特定的规则渲染页面展示给用户看 二丶什么是HTTP协议 1. 超文本传输协议 2. 规定了浏览器与服务端之间消息传输的数据格式 三丶HTTP四大特性 1. 基于请求响应 2
阅读全文
摘要:一丶什么是前端 任何与用户直接打交道的操作界面都可以称之为前端 比如:手机界面, 电脑界面, 平板界面
阅读全文
摘要:第一篇 计算机基础 "计算机硬件发展史以及硬件" "计算机操作系统" "编程语言分类" "Hello_World" 第二篇 python核心基础 "变量和常量" "python变量内存管理" "变量的三大特性" "花式赋值" "注释" "解压缩" "python的用户交互" "格式化输出的三种主流方
阅读全文
摘要:一丶什么是触发器 在满足对某张表数据的增、删、改的情况下,自动触发的功能称之为触发器 二丶为什么要用触发器 触发器专门针对我们对某一张表数据增insert、删delete、改update的行为,这类行为一旦执行 就会触发触发器的执行,即自动运行另外一段sql代码 三丶创建和使用触发器 四丶删除触发器
阅读全文
摘要:一丶什么是视图 视图就是通过查询得到一张虚拟表,然后保存下来,下次直接使用即可 二丶为什么要用视图 如果要频繁使用一张虚拟表,可以不用重复查询 尽量少用视图原因 工作用的不是很多 1. 创建过多" 视图 ",占用硬盘资源和数据库资源 2. 无法改表 三丶如何用视图 创建视图 强调 1. 在硬盘中,视
阅读全文
摘要:一丶数据库的安装和连接 1.1python连接数据库 二丶创建表操作 三丶操作数据 3.1插入操作 3.2查询操作 Python查询Mysql使用 fetchone() 方法获取单条数据,使用 :获取指定参数条数据。 : 该方法获取下一个查询结果集。结果集是一个对象 : 接收全部的返回结果行. :
阅读全文
摘要:实验表创建 建表 插入数据 笛卡尔积 内连接 左连接 右连接 全连接 子查询
阅读全文
摘要:一丶语法顺序 1. select 2. from 3. where 4. group by 二丶执行顺序 1. from 2. where 3. group by 4. select 实验表准备 创建表 添加表数据 三丶where约束条件 在你刚开始接触mysql查询的时候,建议你按照查询的优先级顺
阅读全文
摘要:约束条件成列: 1. PRIMARY KEY (PK) 标识该字段为该表的主键,可以唯一的标识记录 2. FOREIGN KEY (FK) 标识该字段为该表的外键 3. NOT NULL 标识该字段不能为空 4. UNIQUE KEY (UK) 标识该字段的值是唯一的 5. AUTO_INCREME
阅读全文
摘要:一丶整型 分类:TINYINT SMALLINT MEDIUMINT INT BIGINT 作用:存储年龄,等级,id,各种号码等 tinyint 1字节( 128) int 4字节(一般来讲不用设置,因为基本够用) bigint 8字节 类型存储范围:参考图片<http://www.cnblogs
阅读全文
摘要:一丶库 类似于文件夹 增 查 改 删 二丶表 在创建表的时候 需要先指定库 指定库: 查看当前虽在的库: 创建表语法 查看表结构 增 查 改 删 三丶记录 1. 先创建一个库或者指定一个已经存在的库 2. 切换到该库下 创建表 3. 然后再操作记录 增 查 改 删 删除补充
阅读全文
摘要:一丶什么是存储引擎 MySQL中的数据用各种不同的技术存储在文件(或者内存)中。这些技术中的每一种技术都使用不同的存储机制、索引技巧、锁定水平并且最终提供广泛的不同的功能和能力。 二丶mysql支持哪些存储引擎 mysql5.6支持的存储引擎包括InnoDB、MyISAM、MEMORY、CSV、BL
阅读全文
摘要:这边讲述的是window版的... 一丶IT行业铁则 在IT行业 不要轻易的尝试最新版本的软件 二丶Mysql安装流程 1.1下载安装 下载之后 是将MySQL的服务端和客户端都下载了下来 解压 查看文件目录 服务端 mysqld 客户端 mysql 启动mysqld 1.切换到bin目
阅读全文
摘要:一丶认识数据库 1.1什么是数据 描述事物的符号记录称为数据,它们都可以经过数字化后存入计算机.在计算机中描述一个事物,就需要抽取这一事物的典型特征,组成一条记录,就相当于文件里的一行内容. 1.2数据库概念 随意的存到了一个文件中 数据格式也是千差万别的 软件开发目录规范,规定了数据存放的位置 p
阅读全文
摘要:一丶什么是慢查询日志 设定一个时间检测所有超出改时间的sql语句,然后针对性的进行优化! 二丶慢查询流程
阅读全文
摘要:一丶什么是索引 知识回顾:数据都是存在硬盘上的,那查询数据不可避免的需要进行IO操作 索引在MySQL中也叫做“键”,是存储引擎用于快速找到记录的一种数据结构。 primary key unique key index key 注意foreign key不是用来加速查询用的,不在我们研究范围之内,上
阅读全文
摘要:一丶if条件语句 二丶while循环
阅读全文
摘要:注意与存储过程的区别,mysql内置的函数只能在sql语句中使用! 参考博客:
阅读全文
摘要:一丶什么是事务 开启一个事务可以包含一些sql语句,这些sql语句要么同时成功 要么一个都别想成功,称之为事务的原子性 二丶事务的作用 保证了对数据操作的数据安全性 案例:用交行的卡操作建行ATM机给工商的账户转钱 三丶事务应该具有的4个属性(重点) 原子性、一致性、隔离性、持久性。这四个属
阅读全文
摘要:一丶三种开发模型 第一种 第二种 第三种 二丶存储过程 这边的可以为mysql 的自定义函数 三丶如何用存储过程
阅读全文
摘要:阻塞模型 非阻塞模型 多路复用模型 select epoll 信号驱动模型 异步调用模型
阅读全文
摘要:一丶Gevent的作用 让协程实现检测IO,实现并发 二丶Gevent代码实现 spawn方法会创建能检测io并实现并发任务的协程对象 当遇到ip组测未完成会切换其他的协程继续 最终时间会在最长的协程所需时间结果多一点些,这一些指的是io切换消耗的时间
阅读全文
摘要:一丶yield yield本身就是一种在单线程下可以保存任务运行状态的方法 1. yiled可以保存状态,yield的状态保存与操作系统的保存线程状态很像,但是yield是代码级别控制的,更轻量级 2. send可以把一个函数的结果传给另外一个函数,以此实现单线程内程序之间的切换 计算密集型 IO密
阅读全文
摘要:一丶进程池和线程池统一模块 concurrent.futures 1.1 介绍 1. concurrent.futures模块提供了高度封装的异步调用接口 2. ThreadPoolExecutor:线程池,提供异步调用 3. ProcessPoolExecutor: 进程池,提供异步调用 1.2基
阅读全文
摘要:同一个进程下的多个线程本来就是数据共享 为什么还要用队列 因为队列是管道+锁 使用队列你就不需要自己手动操作锁的问题 因为锁操作的不好极容易产生死锁现象 一丶queue.Queue(maxsize=0) 先进先出 queue队列 :使用import queue,用法与进程Queue一样 二丶queu
阅读全文
摘要:一丶什么是event事件 通过判断某个线程的状态来确定自己下一步的操作 如果有线程等待一个Event对象, 而这个Event对象的标志为假,那么这个线程将会被一直阻塞直至该标志为真。一个线程如果将一个Event对象的信号标志设置为真,它将唤醒所有等待这个Event对象的线程。如果一个线程等待一个
阅读全文
摘要:同一个进程下的多个线程本来就是数据共享 为什么还要用队列 因为队列是管道+锁 使用队列你就不需要自己手动操作锁的问题 因为锁操作的不好极容易产生死锁现象 一丶queue.Queue(maxsize=0) 先进先出 queue队列 :使用import queue,用法与进程Queue一样 二丶queu
阅读全文
摘要:一丶同步和互斥的概念 【同步】: 两个或两个以上的进程或线程在运行过程中协同步调,按预定的先后次序运行。比如 A 任务的运行依赖于 B 任务产生的数据。 【互斥】: 一个公共资源同一时刻只能被一个进程或线程使用,多个进程或线程不能同时使用公共资源。 二丶同步锁(互斥锁)的引用 把原来的并发执行变成串
阅读全文
摘要:并发编程更加充分的利用IO资源,但是也带来了新的问题:当多个进程使用同一份数据资源的时候,就会引发数据安全或顺序混乱问题。 一、多进程抢占输出资源 二、使用锁维护执行顺序 由并发变成了串行,牺牲了运行效率,但避免了竞争 上面这种情况虽然使用加锁的形式实现了顺序的执行,但是程序又重新变成串行了,这样确
阅读全文
摘要:一丶什么是GIL锁 python解释器有很多种 最常见的就是Cpython解释器 GIL本质也是一把互斥锁:将并发变成串行牺牲效率保证数据的安全 用来阻止同一个进程下的多个线程的同时执行(同一个进程内多个线程无法实现并行但是可以实现并发 在Cpython解释器中,同一个进程下开启的多线程,同一时刻只
阅读全文
摘要:一丶什么是event事件 通过判断某个线程的状态来确定自己下一步的操作 如果有线程等待一个Event对象, 而这个Event对象的标志为假,那么这个线程将会被一直阻塞直至该标志为真。一个线程如果将一个Event对象的信号标志设置为真,它将唤醒所有等待这个Event对象的线程。如果一个线程等待一个
阅读全文
摘要:一个进程内线程间的通信可以直接修改,因为同个进程中的所有线程都共享这个线程的数据,不会造成数据错乱的问题 代码实现
阅读全文
摘要:一丶进程和线程的区别 线程与进程的区别可以归纳为以下4点: 1. 地址空间和其它资源(如打开文件):进程间相互独立,同一进程的各线程间共享。某进程内的线程在其它进程不可见。 2. 通信: "进程间通信IPC" ,线程间可以直接读写进程数据段(如全局变量)来进行通信——需要 "进程同步" 和互斥手段的
阅读全文
摘要:一丶守护线程是什么 daemon() 守护xx会等待主xx运行完毕后被销毁。需要强调的是:运行完毕并非终止运行。 1. 对主进程来说,运行完毕指的是主进程代码运行完毕 2. 对主线程来说,运行完毕指的是主线程所在的进程内所有非守护线程统统运行完毕,主线程才算运行完毕 二丶代码实现 主线程的结束也就意
阅读全文
摘要:一丶什么是线程 进程线程其实都是虚拟单位,都是用来帮助我们形象的描述某种事物 二丶线程和进程 进程:资源单位 线程:执行单位 将内存比如成工厂 那么进程就相当于是工厂里面的车间 而你的线程就相当于是车间里面的流水线 ps:每个进程都自带一个线程,线程才是真正的执行单位,进程只是在线程运行过程中 进程
阅读全文
摘要:一丶进程间数据分享介绍(推荐队列) 展望未来,基于消息传递的并发编程是大势所趋 即便是使用线程,推荐做法也是将程序设计为大量独立的线程集合 通过消息队列交换数据。这样极大地减少了对使用锁定和其他同步手段的需求, 还可以扩展到分布式系统中 进程间通信应该尽量避免使用本节所讲的共享数据的方式 二丶数据共
阅读全文
摘要:一丶队列模块调用 (推荐使用队列) 创建共享的进程队列,Queue是多进程安全的队列,可以使用Queue实现多进程之间的数据传递。 from multiprocessing import Queue 创建共享的进程队列。 参数 :maxsize是队列中允许的最大项数。如果省略此参数,则无大小限制。
阅读全文
摘要:一丶multiprocess模块 multiprocess是python中一个操作、管理进程的包。 1.2创建多进程方法 multiprocess.process模块是一个创建进程的模块,借助这个模块,就可以完成进程的创建。 1.2 创建方法 Process([group [, target [,
阅读全文
摘要:一丶进程三种状态 程序的三种状态:就绪态,运行态和阻塞态。 1. 就绪(Ready)状态:当进程已分配到除CPU以外的所有必要的资源,只要获得处理机便可立即执行,这时的进程状态称为就绪状态。 2. 执行/运行(Running)状态当进程已获得处理机,其程序正在处理机上执行,此时的进程状态称为执行状态
阅读全文
摘要:一丶进程的并行 并行: 并行是指两者同时执行,比如赛跑,两个人都在不停的往前跑;(资源够用,比如三个线程,四核的CPU ) 阿攀大白话: ps:单核的计算机能不能实现并行,但是可以实现并发 二丶进程的并发 并发: 并发是指资源有限的情况下,两者交替轮流使用资源,比如一段路(单核CPU资源)同时只能过
阅读全文
摘要:要想多个进程交替运行,操作系统必须对这些进程进行调度,这个调度也不是随即进行的,而是需要遵循一定的法则,由此就有了进程的调度算法。 一丶先来先服务调度算法 二丶短作业优先调度算法 阿攀大白话: 先做短期的作业,然后长期的作业,造成问题对短期作业的有好处,长期作业可能一直执行不到或时间太久! 三丶时间
阅读全文
摘要:一丶操作系统知识 1.1操作系统的作用: 1. 隐藏丑陋复杂的硬件接口,提供良好的抽象接口 2. 管理、调度进程,并且将多个进程对硬件的竞争变得有序 1.2多道技术: 1. 产生背景:针对单核,实现并发 1.2.1什么是多道技术 ps:现在的主机一般是多核,那么每个核都会利用多道技术。有4个cpu,
阅读全文
摘要:一丶tcp为什么称为可靠协议(流式协议) 二丶UDP为什么被称为不可靠协议(数据报协议) 三丶两者区别
阅读全文
摘要:一丶什么是粘包 会将数据量比较小的并且时间间隔比较短的数据 一次性打包发送给对方什么是粘包 阿攀大白话: 上次或者前面的数据没发收完,导致之后的影响了之后的获取数据这种现象 二丶粘包产生原因 1. 将数据量比较小的并且时间间隔比较短的数据 2. 一次性打包发送给对方,对方没接收完 三丶粘包代码举例
阅读全文
摘要:一丶什么是Scoket Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部,让Socket去组织数据,以符合指定的协议。 所以,我们无需
阅读全文
摘要:一丶什么是TCP TCP把连接作为最基本的对象,每一条TCP连接都有两个端点,这种端点我们叫作套接字(socket),它的定义为端口号拼接到IP地址即构成了套接字,例如,若IP地址为192.3.4.16 而端口号为80,那么得到的套接字为192.3.4.16:80。 二丶TCP三次握手四次挥手 官腔
阅读全文
摘要:一丶什么是UDP UDP是无链接的,先启动哪一端都不会报错 UDP协议是数据报协议,发空的时候也会自带报头,因此客户端输入空,服务端也能收到 UPD协议一般不用于传输大数据。 UDP套接字虽然没有粘包问题,但是不能替代TCP套接字,因为UPD协议有一个缺陷:如果数据发送的途中,数据丢失,则数据就丢失
阅读全文
摘要:参考链接 : https://www.cnblogs.com/nickchen121/p/11004980.html
阅读全文
摘要:一丶单机架构 应用领域: 植物大战僵尸 office 二丶CS架构 应用领域: QQ 大型网络游戏 计算机发展初期用户去取数据,直接就去主机拿,从这里开始就分出了客户端和服务端。 客户端:用户安装的软件; 服务端:统一管理数据库的主机中的软件就叫做服务端,再后来服务端不只是管理数据,外加处理业务逻辑
阅读全文
摘要:isinstance isinstance(obj,cls)检查是否obj是否是类 cls 的对象 提到 isinstance 不得不提一下type 带入场景 在游戏项目中,我们会在每个接口验证客户端传过来的参数类型,如果验证不通过,返回给客户端“参数错误”错误码。 这样做不但便于调试,而且增加健壮
阅读全文
摘要:一丶什么是反射 反射就是通过字符串来操作类或者对象的属性 二丶怎么用反射 1. hasattr:判断一个方法是否存在与这个类中 2. getattr:根据字符串去获取obj对象里的对应的方法的内存地址,加"()"括号即可执行 3. setattr:通过setattr将外部的一个函数绑定到实例中 4.
阅读全文
摘要:一丶什么是元类 在python中一切皆对象,那么我们用class关键字定义的类本身也是一个对象,负责产生该对象的类称之为元类,即元类可以简称为类的类 二丶为什么用元类 三丶内置函数exec 四丶class创建类 如果说类也是对象,那么用class关键字的去创建类的过程也是一个实例化的过程,该实例化的
阅读全文
摘要:一丶什么是单例模式 单例是一种 设计模式 ,应用该模式的类只会生成一个实例。 二丶为什么用单例模式 单例是为了节省 资源,当一个类的所有对象属性全部相同时,则没有必要创建多个对象 三丶实例的单例 四丶单例元类
阅读全文
摘要:迭代器重温 who 迭代器对象 必须有 \_\_iter\_\_,\_\_next\_\_ 这两方法 \_\_iter\_\_ 把对象转化迭代器对象 \_\_next\_\_ 迭代取值啦,运行一次取一个相对单位 案例: 列子一 死循环 列子2 StopIteration异常版 输出结果: 列子3 模
阅读全文
摘要:常用类的运算符 \_\_gt\_\_ 大于 \_\_lt\_\_ 小于 \_\_eq\_\_ 等于 !!!注意 运算符远不止这些!!!!!可以再object类中进行查看!! 当我们在使用某个符号时,python解释器都会为这个符号定义一个含义,同时调用对应的处理函数, 当我们需要自定义对象的比较规则
阅读全文
摘要:什么是slots __slots__是一个类变量,变量值可以是列表,元祖,或者可迭代对象,也可以是一个字符串(意味着所有实例只有一个数据属性) 使用点来访问属性本质就是在访问类或者对象的__dict__属性字典(类的字典是共享的,而每个实例的是独立的) 为什么用slots 字典会占用大量内存,如果你
阅读全文
摘要:一丶doc 返回类的注释信息 该属性无法被继承 二丶dir 对象的 __dir__ 方法用于列出该对象内部(包括所有父类)的所有属性(包括方法)名,该方法将会返回包含所有属性(方法)名的列表。 三丶dict 当前对象的属性信息 特点: 1) 内置的数据类型没有__dict__属性 2) 每个类有
阅读全文
摘要:\_\_call\_\_ 对象后面加括号时,触发执行。 注: 构造方法的执行是由创建对象触发的,即:对象 = 类名() ; 而对于 \_\_call\_\_ 方法的执行是由对象后加括号触发的,即:对象() 或者 类()() 列子 和 \_\_init\_\_ 结合着看
阅读全文
摘要:\_\_del\_\_ __del__也称之为析构方法 __del__会在对象被删除之前自动触发 执行时机: 手动删除对象时立马执行,或是程序运行结束时也会自动执行 上例子 列子一 列子二 典型的应用场景: 创建数据库类,用该类实例化出数据库链接对象,对象本身是存放于用户空间内存中,而链接则是由操作
阅读全文
摘要:what python中的上下文 这个概念属于语言学科,指的是一段话的意义,要参考当前的场景,既上下文 在python中,上下文可以理解为是一个代码区间,一个范围 ,例如with open 打开的文件仅在这个上下文中有效 我们知道在操作文件对象的时候可以这么写 上述叫做上下文管理协议,即with语句
阅读全文
摘要:\_\_str\_\_ 会在对象被转换为字符串时或print()时候,转换的结果就是这个函数的返回值 使用场景:我们可以利用该函数来自定义,对象的是返回值(一般人为为打印格式) 列子一 列子二 \_\_repr\_\_ str函数或者print函数 obj.\_\_str\_\_() repr或者交
阅读全文
摘要:实现点方法的魔法方法: getitem setitem delitem \_\_getitem\_\_ 当你用中括号去获取属性时 执行 getitem执行 18 setitem执行 \_\setitem\_\_ 当你用中括号去设置属性时 执行 输出结果 对应 \_\_setitem\_\_ 方法代码
阅读全文
摘要:实现点方法的魔法方法: getattr setattr delattr getattribut getattr 只有在使用点调用属性且属性不存在的时候才会触发 输出结果: setattr 添加/修改属性会触发它的执行 输出结果: 会多一个 key为z value为3 的键 delattr 删除属性的
阅读全文
摘要:接口 接口是一组功能的集合,但是接口中仅包含功能的名字,不包含具体的实现代码 接口本质是一套协议标准,遵循这个标准的对象就能被调用 接口目的: 为了提高扩展性 例如电脑提前指定制定一套USB接口协议,只要你遵循该协议,你的设备就可以被电脑使用,不需要关心到底是鼠标还是键盘 封装描述了对数据/信息进行
阅读全文
摘要:什么是property特性 property装饰器用于将被装饰的方法伪装成一个数据属性,在使用时直接使用 语法 property属性的两种方式 1. 装饰器 即:在方法上应用装饰器(推荐使用) 2. 类属性 即:在类中定义值为property对象的类属性(Python2历史遗留) property属
阅读全文
摘要:什么是类的封装 对外隐藏内部实现细节和属性,并提供简易访问的接口 为什么要封装 两个目的: 1.为了保证 关键数据的安全性 2.对外部隐藏实现细节,隔离复杂度 【好处】 1. 将变化隔离; 2. 便于使用; 3. 提高复用性; 4. 提高安全性; 权限 python中的权限分为两种 1.公开 外界
阅读全文
摘要:面向对象的多态可分为多态和多态性 面向对象编程的多态可以分为多态和多态性 概念 官方解释: 多个不同类对象可以响应同一个方法,产生不同的结果 首先强调多态不是一种特殊的语法,而是一种状态,特性(既多个不同对象可以响应同一个方法,产生不同的结果 ) 既多个对象有相同的使用方法, 好处 对于使用者而
阅读全文
摘要:单纯调用父类方法 列子 使用FatFather.__init__(self,name)直接调用父类的方法。 super()方法登场 super()描述 super() 函数是用于调用父类(超类)的一个方法。 super 是用来解决多重继承问题的,直接用类名调用父类方法在使用单继承的时候没问题,但是如
阅读全文
摘要:类的分类 新式类 继承了object的类以及该类的子类,都是新式类 Python3中所有的类都是新式类 经典类 没有继承object的类以及该类的子类,都是经典类 只有Python2中才有经典类 菱形继承问题 如果继承关系为菱形结构,即子类的父类最后继承了同一个类,那么属性的查找方式有两种: 经典类
阅读全文
摘要:类的组合 什么是组合 组合就是一个类的对象具备某一个属性,该属性的值是指向另外外一个类的对象 大白话理解:也是一种关系,描述两个对象之间 是什么有什么的关系 将一个对象作为另一个对象的属性,(既什么有什么) 组合可以理解成多个人去造一个机器人,有的人造头、有的人造脚、有的人造手、有的人造躯干,大家都
阅读全文
摘要:类的派生和覆盖 什么是派生 子类中新定义的属性的这个过程叫做派生,并且需要记住子类在使用派生的属性时始终以自己的为准 当一个子类中出现了与父类中不同的内容时,这个子类就称之为派生类 通常子类都会写一些新的代码,不可能和父类完全一样 , 既通常都是派生类, 所以派生类指的就是子类 什么是覆盖 也称之为
阅读全文
摘要:类的继承 什么是继承 1.继承是一种新建类的方式,新建的类称为子类,被继承的类称为父类,也成为了基类 2.继承的子类能直接使用父类已经存在的方法和属性 3.继承是类与类之间的关系 为什么用继承 继承的一方可以直接使用被继承一方已经有的东西 其目的是为了重用已经有的代码,提高重用性 使用继承可以减少代
阅读全文
摘要:类中定义的函数是类的函数属性,类可以使用,但使用的就是一个普通的函数而已,意味着需要完全遵循函数的参数规则,该传几个值就传几个 一丶引入 对于上述的学生类,如果类的属性改了,则其他对象的属性也会随之改变 ` OldboyStudent.school = 'OLDBOY' ` 二丶定制对象特有属性 对
阅读全文
摘要:一丶属性查找 先从对象自己的名称空间找,没有则去类中找,如果类也没有则报错
阅读全文
摘要:一丶对象的绑定方法 类名称空间中定义的数据属性和函数属性都是共享给所有对象用的 对象名称空间中定义的只有数据属性,而且是对象所独有的数据属性 二丶类使用对象的绑定对象 类中定义的函数是类的函数属性,类可以使用,但使用的就是一个普通的函数而已,意味着需要完全遵循函数的参数规则,该传几个值就传几个 三丶
阅读全文
摘要:一丶没有对象 以未来我们要连接数据库举例,如果没有面向对象的思想,我们只要想要使用一个方法,就必须得这样做 由于host、port、db、charset可能是固定不变的,sql一直在变化,因此我们通过上述的方法实现不同的sql语句,非常麻烦,因此我们可以改用默认形参 虽然是用默认参数简化了操作,但是
阅读全文
摘要:一丶类与数据类型 python3中统一了类与类型的概念,类就是类型 lis和lis2都是实例化的对象,因此lis使用append方法和lis2无关 二丶list.append()方法原理
阅读全文
摘要:一丶类和对象 类的意思:种类、分类、类别 对象是特征与技能的结合体,我可能有身高体重、而你也有身高体重,所以你会说你像我,但是你一定不会说你像阿猫阿狗。并且我和你其实就可以说成是一类,而你和选课系统不能说是一类,因此给出类的定义:类就是一系列对象相似的特征与技能的结合体。 在现实世界中:先有一个个具
阅读全文
摘要:一丶面向对象编程 面向过程变成的核心是过程二字,过程指的是解决问题的步骤,即先干什么再干什么然后干什么…… 基于面向过程编程的思想编写程序好比在设计一条流水线,是一种机械式的思维方式。 优点:复杂的问题流程化、进而简单化 缺点:扩展性差 二丶面向对象编程 你可以把你自己想象成如来佛祖,然后你想找四个
阅读全文
摘要:面向对象已经成为了主流的开发思想。OOP 参考链接地址: https://www.cnblogs.com/nickchen121/p/10981462.html
阅读全文
摘要:一丶正则表达式 正则表达式本身是一种小型的、高度专业化的编程语言,它并不是Python的一部分。正则表达式是用于处理字符串的强大工具,拥有自己独特的语法以及一个独立的处理引擎,效率上可能不如str自带的方法,但功能十分强大。得益于这一点,在提供了正则表达式的语言里,正则表达式的语法都是一样的,区别只
阅读全文
摘要:一丶低配logging 日志总共分为以下五个级别,这个五个级别自下而上进行匹配 debug info warning error critical,默认最低级别为warning级别。 1.1 v1 `WARNING:root:警告信息 ERROR:root:报错信息 CRITICAL:root:严重
阅读全文
摘要:在内置数据类型(dict、list、set、tuple)的基础上,collections模块还提供了几个额外的数据类型:Counter、deque、defaultdict、namedtuple和OrderedDict等。 1.namedtuple: 生成可以使用名字来访问元素内容的tuple 2.d
阅读全文
摘要:一丶序列化 把对象(变量)从内存中变成可存储或传输的过程称之为序列化,在Python中叫pickling,在其他语言中也被称之为serialization,marshalling,flattening。 序列化的优点: 1.持久保存状态:内存是无法永久保存数据的,当程序运行了一段时间,我们断电或者重
阅读全文
摘要:一丶hashlib模块 hash是什么 hash是一种算法(Python3.版本里使用hashlib模块代替了md5模块和sha模块,主要提供 SHA1、SHA224、SHA256、SHA384、SHA512、MD5 算法),该算法接受传入的内容,经过运算得到一串hash值。 hash值的特点: 1
阅读全文
摘要:一丶sys模块 sys模块负责程序与python解释器的交互,提供了一系列的函数和变量,用于操控python的运行时环境。 方法|详解 |: :| : sys.argv|命令行参数List,第一个元素是程序本身路径 sys.exit(n)|退出程序,正常退出时exit(0),错误退出sys.exit
阅读全文
摘要:一丶os模块 os模块负责程序与操作系统的交互,提供了访问操作系统底层的接口,多用于文件处理。 os开头 方法|详解 |: :| : os.makedirs('dirname1/dirname2')|os.makedirs('dirname1/dirname2') os.removedirs('di
阅读全文
摘要:一丶random模块 random模块可以看成是随机模块 导入方式: 随机小数 大于0且小于1之间的小数 大于1小于3的小数 随机整数 大于等于1且小于等于5之间的整数 大于等于1且小于10之间的奇数 随机选择一个返回 1或者23或者\[4,5\] 随机选择多个返回,返回的个数为函数的第二个参数 列
阅读全文
摘要:一丶datetime模块 datetime模块可以看成是时间加减的模块 导入方式: 返回当前时间 当前时间+3天 当前时间 3天 2019 03 04 16:22:14.568473 当前时间+30分钟 时间替换 额外解读
阅读全文
摘要:和时间有关系的我们就要用到时间模块。在使用模块之前,应该首先导入这个模块。 常用方法 表示时间的三种方式 在Python中,通常有这三种方式来表示时间:时间戳、元组(struct_time)、格式化的时间字符串: (1)时间戳(timestamp) :通常来说,时间戳表示的是从1970年1月1日00
阅读全文
摘要:一丶什么是模块 模块是一系列功能的集合体,而函数是某一个功能的集合体,因此模块可以看成是一堆函数的集合体。一个py文件内部就可以放一堆函数,因此一个py文件就可以看成一个模块。如果这个py文件的文件名为module.py,模块名则是module。 二丶模块的四种形式 在Python中,总共有以下四种
阅读全文
摘要:一丶什么是包 包是模块的一种形式,包的本质就是一个含有.py的文件的文件夹。 二丶为什么要有包 模块的第一个版本只有10个功能,但是未来在扩展版本的时候,模块名和用法应该最好不要去修改,但是这只是对使用者友好,而由于版本扩展,文件越来越大,模块设计者对模块的管理、维护会越来越复杂,因此我们可以使用包
阅读全文
摘要:一丶编译Python文件 为了提高加载模块的速度,强调强调强调:提高的是加载速度而绝非运行速度。python解释器会在__pycache__目录中下缓存每个模块编译后的版本,格式为:module.version.pyc。通常会包含python的版本号。例如,在CPython3.3版本下,spam.p
阅读全文
摘要:一丶Python文件的两种用途 python文件总共有两种用途,一种是执行文件;另一种是被当做模块导入。 编写好的一个python文件可以有两种用途: 1.脚本,一个文件就是整个程序,用来被执行 2.模块,文件中存放着一堆功能,用来被导入使用 如果直接运行run.py会直接运行aaa.py中的f1(
阅读全文
摘要:模块其实就是一个文件,如果要执行文件,首先就需要找到模块的路径(某个文件夹)。如果模块的文件路径和执行文件不在同一个文件目录下,我们就需要指定模块的路径。 模块的搜索路径指的就是在导入模块时需要检索的文件夹。 导入模块时查找模块的顺序是: 1.先从内存中已经导入的模块中寻找 2.内置的模块 3.环境
阅读全文
摘要:一丶什么是循环导入 1.创建m2的名称空间 2.执行m2.py,将执行产生的名字丢到m2.py 3.在当前执行文件中拿到m2.x 1.创建m1的名称空间 2.执行m1.py,将执行产生的名字丢到m1.py 3.在当前执行文件中拿到m1.y 1.创建m1的名称空间 2.执行m1.py,将执行产生的名字
阅读全文
摘要:一丶软件开发的目录规范 为了提高程序的可读性与可维护性,我们应该为软件设计良好的目录结构,这与规范的编码风格同等重要,简而言之就是把软件代码分文件目录。假设你要写一个ATM软件,你可以按照下面的目录结构管理你的软件代码: 一个项目列子的目录格式参考:
阅读全文
摘要:一般使用import和from...import...导入模块。 以下述spam.py内的文件代码为例。 一丶import模块名 import首次导入模块发生了3件事: 1.以模块为准创造一个模块的名称空间 2.执行模块对应的文件,将执行过程中产生的名字都丢到模块的名称空间 3.在当前执行文件中拿到
阅读全文
摘要:一丶形参和实参 1.1 形参 在函数定义阶段括号内定义的参数,称之为形式参数,简称形参,本质就是变量名。 1.2 实参 在函数调用阶段括号内传入的参数,称之为实际参数,简称实参,本质就是变量的值。 二丶位置参数 2.1 位置参数 在函数定义阶段,按照从左到右的顺序依次定义的形参,称之为位置形参。 特
阅读全文
摘要:面向过程编程是解决问题的一种思想,相当于武林门派,武林门派之间没有好坏之分,因此它与我们之后学习的面向对象编程其实没有好坏之分。 面向过程编程,核心是编程二字,过程指的是解决问题的步骤,即先干什么、后干什么、再干什么、然后干什么…… 基于该思想编写程序就好比在设计一条流水线,面向对称编程其实是一种机
阅读全文
摘要:内置函数 更多内置函数:https://docs.python.org/3/library/functions.html?highlight=built ascii 常用......... 1.bytes() 解码字符。 ` b'\xe4\xbd\xa0\xe5\xa5\xbd' ` ` b'\xe
阅读全文
摘要:一丶有名函数 我们之前定的函数都是有名函数,它是基于函数名使用。 ` from func from func from func ` 二丶匿名函数 匿名函数,他没有绑定名字,使用一次即被收回,加括号既可以运行。 三丶与内置函数联用 匿名函数通常与max()、sorted()、filter()、sor
阅读全文
摘要:一丶什么是函数递归 函数的嵌套调用是:函数嵌套函数。函数的递归调用:它是一种特殊的嵌套调用,但是它在调用一个函数的过程中,又直接或间接地调用了它自身。 如果递归函数不断地调用函数自身,那么这个递归函数将会进入一个死循环,因此我们应该给递归函数一个明确的结束条件。 1.1 直接调用 直接调用指的是:直
阅读全文
摘要:一丶yield关键字 yield的英文单词意思是生产,在函数中但凡出现yield关键字,再调用函数,就不会继续执行函数体代码,而是会返回一个值。 ` ` 生成器的本质就是迭代器,同时也并不仅仅是迭代器,不过迭代器之外的用途实在是不多,所以我们可以大声地说:生成器提供了非常方便的自定义迭代器的途径。并
阅读全文
摘要:一丶字典生成式 个人总结格式{} 内 取得key:value + for循环迭代元素(ps:key,value要么固定值,要么跟遍历元素有关联运算) 二丶zip()方法 ` zip(keys,values): info_dict: {'name': 'nash', 'age': 19, 'sex':
阅读全文
摘要:一丶列表推导式 列表推导式一般和if判断用在一起 执行顺序: 先for循环,迭代遍历后把值进行(一般放在)后面的if判断 `[i for i in range(10)]: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] ` ` [i 2 for i in range(10)]: [0,
阅读全文
摘要:一丶三元表达式 条件成立时的返回值 if 条件 else 条件不成立时的返回值 `输出结果 x if x y else y: 20`
阅读全文
摘要:迭代器 迭代: 迭代是更新换代,如你爷爷生了你爹,你爹生了你,迭代也可以说成是重复,并且但每一次的重复都是基于上一次的结果来的。如计算机中的迭代开发,就是基于软件的上一个版本更新。以下代码就不是迭代,它只是单纯的重复 迭代器:迭代的工具。 其他解释 \ 迭代是Python最强大的功能之一,是访问集合
阅读全文
摘要:装饰器就是闭包的一个很好的应用拓展!!! 一丶无参装饰器 1.1 什么是装饰器 器指的是工具,而程序中的函数就是具备某一功能的工具,所以装饰器指的是为被装饰器对象添加额外功能。因此定义装饰器就是定义一个函数,只不过该函数的功能是用来为其他函数添加额外的功能。 需要注意的是: 装饰器本身其实是可以任意
阅读全文
摘要:函数对象:可以将定义在函数内的函数返回到全局使用,从而打破函数的层级限制。 名称空间与作用域:作用域关系在函数定义阶段时就已经固定死了,与调用位置无关,即在任意位置调用函数都需要跑到定义函数时找到作用域关系。 ` 1 ` 一丶什么是闭包 闭包:闭是封闭(函数内部函数),包是包含(该内部函数对外部作用
阅读全文
摘要:函数内部的函数只能在函数内部调用,不能在函数外部调用?! 原因: 名称空间问题!!! 一丶名称空间 名称空间(name spaces):在内存管理那一章节时,我们曾说到变量的创建其实就是在内存中开辟了一个新的空间。但是我们一直在回避变量名的存储,其实在内存中有一块内存存储变量名与变量间的绑定关系的空
阅读全文
摘要:一丶函数的嵌套定义 函数内部定义的函数,无法在函数外部使用内部定义的函数。 ` from f2 ` 有一个需求,通过给一个函数传参即可求得某个圆的面积或者圆的周长: 列子: ` circle(10): 314.1592653589793 circle(10,action='perimeter'):
阅读全文
摘要:函数是第一类对象,即函数可以被当做数据处理。 ` ` 一丶函数对象的四大功能 这边的函数指的是函数名,函数名指向的是函数存放的内存地址 1.引用 ` ` 2.当作参数传给一个函数 ` from func ` 3.可以当作函数的返回值 ` from func ` 4.可以当作容器类型的元素 ` fro
阅读全文
摘要:可变长参数:指的是在调用函数时,传入的参数个数可以不固定 调用函数时,传值的方式无非两种,一种是位置实参,另一种是关键字实参,因此形参也必须得有两种解决方法,以此来分别接收溢出的位置实参(\ )与关键字实参(\ \ ) 一丶可变长形参之\ 形参中的\ 会将溢出的位置实参全部接收,然后存储元组的形式,
阅读全文
摘要:一丶是什么返回值 函数内部代码经过一些列逻辑处理获得的结果。 `nash ` 二丶为什么要有返回值 需要在程序中拿到函数的处理结果做进一步的处理,则需要函数必须要有返回值。 return是一个函数结束的标志,函数内可以有多个return,只要执行到return,函数就会执行。 return的返回值可
阅读全文
摘要:无参函数 定义函数时参数是函数体接收外部传值的一种媒介,其实就是一个变量名 在函数阶段括号内没有参数,称为无参函数。需要注意的是:定义时无参,意味着调用时也无需传入参数。 如果函数体代码逻辑不需要依赖外部传入的值,必须得定义成无参函数。 有参函数 在函数定义阶段括号内有参数,称为有参函数。需要注意的
阅读全文
摘要:一丶函数体系 接下来,我们将按照这个函数体系给大家详细的介绍函数: 什么是函数? 为什么要用函数? 函数的分类:内置函数与自定义函数 如何自定义函数 1.语法 2.定义有参数函数,及有参函数的应用场景 3.定义无参数函数,及无参函数的应用场景 4.定义空函数,及空函数的应用场景 调用函数 1.如何调
阅读全文

浙公网安备 33010602011771号