
web全栈开发知识
文章平均质量分 87
1.python基础
2.mysql
3.linux
4.redis
5.git
6.vue
...
洋芋本人
如果有问题可以在文章下面提出,有空会挑着解答,祝大家学习愉快
展开
-
9Django-----------Django框架------------安装使用、基本介绍
一、Django框架介绍二、Django框架搭建(一)环境搭建(二)项目实例三、项⽬结构介绍(一)URL与视图1)视图的定义2)路由的定义3)URL模块化4)URL添加参数5)url命名(二)模板1)if标签2)for...in...标签3)a标签(三)数据库1)Django配置连接数据库2)创建ORM模型3)映射模型到数据库中4)ORM的增删改查5)F表达式和Q表达式----优化ORM6)QuerySet的⽅法7)ORM模型迁移(四)⾼级视图1)请求方式2原创 2021-12-28 13:40:44 · 1632 阅读 · 0 评论 -
7Vue---------------Vue网页开发------------------全栈式开发48
一、Vue 介绍(一)绑定模板 el(二)值存储data`更新视图的值`(三)方法methods(四)其他组成部分二、v-绑定语法(一)v-if、v-show切换显示(二)v-for循环(三)v-bind单向绑定(四)v-model双向绑定(五)v-on绑定事件三、知识补充四、特殊标签(一)button按钮(二)输入框inputtextarea(三)select下拉框(四)table表格五、特性标签属性(一)class、type样式属性(二)computed类-原创 2021-12-28 13:38:37 · 1360 阅读 · 1 评论 -
6Vue----------------VSCode编译器--网页开发工具------------------全栈式开发47
VSCode下快速开始编写html的方法1.新建文件(Ctrl+N)2.新建的文件Untitled-1 是纯文本格式的,需要改为 HTML 格式。3.快速生成标准的 html 代码(1)在第一行输入 !(2)按tab键或者选择代码提示中的 !在浏览器中查看HTML页面Visual Studio Code默认是在VScode的控制台下查看html页面,这对于我们调试和查看效果十分不方便。所以这里我们需要安装一下扩展插件,在浏览器中查看html页面。安装完成后,选择你要在游览器打开的HTML原创 2021-07-05 20:21:33 · 152 阅读 · 0 评论 -
6git----------------Git多人开发协同工具-------------------全栈式开发46
git checkout -b bbz创建分支并切换history 查看历史命令原创 2021-06-28 03:06:17 · 734 阅读 · 1 评论 -
5redis------------Redis补充--内存淘汰机制与算法、Redis性能测试、Redis慢查询、可视化管理工具------全栈式开发45
内存淘汰机制与算法而 Redis 内存淘汰机制指的是,当 Redis 运行内存已经超过 Redis 设置的最大内存之后,将采用什么策略来删除符合条件的键值对,以此来保障 Redis 高效的运行。Redis 最大运行内存只有在 Redis 的运行内存达到了某个阀值,才会触发内存淘汰机制,这个阀值就是我们设置的最大运行内存,此值在 Redis 的配置文件中可以找到,配置顶为 maxmemkory。内存淘汰执行流程,如下图所示:查询最大运行内存我们可以使用命令 config get maxmemory原创 2021-06-26 00:48:06 · 309 阅读 · 1 评论 -
5redis-----------redis高级--GEO-查询附近的人、基数统计算法HLL 、布隆过滤器、缓存雪崩&穿透&击穿-------全栈式开发44
这里写目录标题查询附近的人-GEO4.基数统计算法-HyperLogLog缓存雪崩&缓存穿透查询附近的人-GEO根据经纬度我们所处的任何位置都可以用经纬度和维度拉标识,经度的范围 -180°到 180°,维度的范围为 -90° 到 90°。维度以赤道为界。赤道以南为负数,赤道以北为整数;经度以本初子午线(英国格林尼治天文台)为界,东边为正数,西边为负数。Redis 在 3.2 版本中增加了 GEO 类型用于存储和查询地理位置,关于 GEO 的命令不多,主要包含以下6个:geoadd:添原创 2021-06-26 00:44:17 · 374 阅读 · 1 评论 -
5redis------------redis 进阶---Redis事务、Redis 管道技术、redis持久化、Redis主从复制、哨兵模式-----全栈式开发43
一、redis 事务介绍前言事务指的是提供一种将多个命令打包,一次性按顺序地执行的机制,并且保证服务器只有在执行完事务中的所有命令机制后,才能继续处理客服端的其它命令。事务也是其它关系型数据库所必备的基础功能,以支付的场景为例,正常情况下只有正常的消费完成之后,才会减去账户余额。但是没有事务的保障,可能会发生消费失败了,但依旧会把账户的余额给扣减了,我想这种情况下应该任何人都无法接受吧?所以事务是数据库中一项非常重要的基础功能。事事务基本使用事务在其它语言中,一般分为以下三个阶段:开启事物—原创 2021-06-26 00:43:23 · 339 阅读 · 0 评论 -
5redis------------redis基础----Redis介绍、 五大数据类型、redis与python-全栈式开发42
分布式爬虫普通爬虫改成分布式爬虫I/O压力:读写操作 读写压力造成性能上的瓶颈一、Redis介绍背景随着互联网+大数据时代的来临,传统的关系型数据库已经不能满足中大型网站日益增长的访问量和数据量。这个时候就需要一种能够快速存取数据的组件来缓解数据库服务I/O的压力,来解决系统性能上的瓶颈。定义Redis是一个高性能的,开源的,C语言开发的,键值对存储数据的nosql数据库。NoSQL:not only sql,泛指非关系型数据库 Redis/MongoDB/Hbase Hadoop原创 2021-06-26 00:32:56 · 342 阅读 · 1 评论 -
4linux--------linux常用命令------全栈式开发41
安装建立空白,就相当于在这个台电脑下没有安装任何操作系统,新的Ubuntu64位切换出来 Ctrl alt点外面pwd:print word dirls显示当前目录下的文件tree 树状,可以看到子目录tree 目录 只显示该目录的树状结构查看以a开头的 正则 ls a*所有a开头的 ls a?两位当前用户名@主机名:~$~当前所在目录$代表是普通用户#root登陆就是超级管理员颜色区分不准,颜色会变ll展示详细信息 ls -ld开头的就是目录cd ~当前用户原创 2021-06-25 23:14:01 · 409 阅读 · 0 评论 -
4linux--------操作系统介绍 - 项目前导必备------全栈式开发40
操作系统介绍一、操作系统二、虚拟机软件三、Ubuntu操作系统四、Linux内核及发行版一、操作系统为啥要学linux操作系统项目部署到本地,别人是无法访问到的,所以我们需要项目上线(就是把本地项目放到服务器上运行,但是现在服务器系统大多数的都是linux)操作系统的定义操作系统直接运行在计算机上的系统软件, 它是控制硬件和支持软件运行的计算机程序。作用操作系统是一个控制硬件和支持软件运行的计算机程序,只有安装了操作系统计算机才能进行正常工作。向下控制硬件、向上支持软件的运行,具有原创 2021-06-22 03:28:17 · 854 阅读 · 0 评论 -
3MySQL数据库-------MySQL规范------全栈式开发39
命名规范表名建议使用有业务意义的英文词汇,必要时可加数字和下划线,并以英文字母开头库、表、字段全部采用小写MySQL 在 Linux 下默认是区分大小写的,而在 Windows 下不区分大小写。因此,防止出现问题,建议都设置为小写。如果代码在windows写单服务器是linux,那么大小写就会出问题避免用 MySQL 的保留字命名(包括表名、列名)禁止超过 30 个字符临时库、表名必须以 tmp 为前缀,并以日期为后缀,如:tmp_shop_info_20190404备份库、表必须以原创 2021-06-22 03:26:28 · 255 阅读 · 0 评论 -
3MySQL数据库-------MySQL批量插入数据---实例运用------全栈式开发38
批量插入数据函数和存储过程-- 部门表create table dept( id int primary key auto_increment, deptno mediumint not null, dname varchar(20) not null, loc varchar(13) not null)engine=innodb default charset=utf8;-- 员工表create table emp( id int primary ke原创 2021-06-22 03:13:49 · 154 阅读 · 0 评论 -
3MySQL数据库-------MySQL设计优化 -主从复制、数据库的分区-----全栈式开发37
复制的基本原理主从复制主要解决了什么问题:读写分离,防止主机崩溃i/o线程mysql是异步的串行的,所以会有一定的延迟,i/o操作一定会有延迟复制的三步骤1.master将改变记录到二进制日志。这些记录过程叫做二进制日志事件,binary log events2.slave将master的binary log events拷贝到它的中继日志3.slave重做中继日志relaylog中的事件,将改变应用到自己的数据库中。MySQL复制是异步的且串行的复制的基本原则1.每个slave只有原创 2021-06-22 02:18:32 · 348 阅读 · 0 评论 -
3MySQL数据库----------SQL语句优化 - 索引、join、order by、limit -全栈式开发36
索引的分类分类的角度索引名称数据结构B+树、Hash索引、B-tree等存储层面聚簇索引、非聚簇索引逻辑索引主键索引、普通索引、复合索引(mysql组合索引和联合索引都是一个东西)唯一索引、空间索引等只需要记住逻辑层面回表从普通索引查出主键索引,然后查询出数据的过程就叫做回表,由于回表需要多执行一次查询,这也就是为什么主键索引要比普通索引要快的原因,所以,我们要尽量使用主键查询-- 数据库表test在两个字段 id(主键),name,age,addres,原创 2021-06-18 00:04:54 · 552 阅读 · 5 评论 -
3MySQL数据库------MySQL整体优化思路 - 全栈式开发35
一、硬件相关优化在 MySQL 整体的优化环节中,硬件相关的优化必不可少,因此来聊聊这一方面的优化策略(一)CPU相关优化1.关闭 CPU 节能,设定为最大性能模式原因:考虑到在高并发之前没有任何连接的情况,机器可能会处于节电模式,高并发场景来临时可能导致处理不过来新的请求。2.配置合理的 CPU 核数和选择合适的 CPU 主频原因:CPU 核数越多,支持的并发也越高;CPU 主频越高,处理任务的速度越快。(二)内存相关优化1.合理配置数据库服务器内存的大小。内存对 My原创 2021-06-16 23:22:40 · 409 阅读 · 0 评论 -
3MySQL数据库--MySQL性能检测工具 - explain - showprofile -查询日志- 基准测试- trace- 全栈式开发34
explain是什么使用explain关键字可以模拟优化器执行SQL查询语句,从而知道MySQL是如何处理你的SQL语句可以观察查询优化器explain能干啥表的读取顺序:根据id字段数据读取操作的操作类型:select_type哪些索引可以使用哪些索引被实际使用表之间的引用每张表有多少行被优化器查询explain怎么使用explain + SQL语句id表的读取顺序select查询的顺序号,包含一组数字,表示查询中执行select字句或操作表的顺序两种情况1.id原创 2021-06-16 16:36:27 · 414 阅读 · 0 评论 -
3MySQL数据库- 数据库锁- 表锁-行锁-间隙锁 - 全栈式开发33
数据库锁一、数据库锁定义(一)读锁和写锁的区别(二)锁在InnoDB与MyISAM的运用(三)如何锁定一行二、锁的分类(一)表锁(二)行锁(三)间隙锁一、数据库锁定义定义锁是计算机协调多个进程或线程并发访问某一资源的机制事务的也是通过锁来实现的加锁有很好有坏,容易造成阻塞分类表锁行锁间隙锁(一)读锁和写锁的区别先理解读锁与写锁的区别,更好理解表锁与行锁的不同之处读锁加读锁,不会阻塞其他进程对同一表的读请求,但会阻塞对同一表的写请求。只有当读锁释放后,才会执行其他进行的原创 2021-06-15 06:14:47 · 550 阅读 · 3 评论 -
3MySQL数据库- MySQL数据库的架构 - 引擎对比- 全栈式开发32
据库的架构一、数据库的整体架构架构:四层(一)网络连接层多语言提链接(二)服务层第二层服务层是MySQL的核心,MySQL的核心服务层都在这一层,查询解析,SQL执行计划分析,SQL执行计划优化,查询缓存,以及跨存储引擎的功能都在这一层实现:存储过程、触发器、视图等。通过下图来观察服务器的内部结构(三)存储引擎层负责MySQL中数据的存储与提取。服务器中的查询执行引擎通过API与存储引擎进行通讯,通过接口屏蔽了不同存储引擎的差异。MySQL采用插件式的存储引擎。MySQL为我们原创 2021-06-12 23:53:20 · 201 阅读 · 3 评论 -
3MySQL数据库- MySQL高级 - 事务 -索引 - 账户管理 - 全栈式开发31
为什么要有事务事务广泛的运用于订单系统、银行系统等多种场景例如:A用户和B用户是银行的储户,现在A要给B转账500元,那么需要做以下几件事1.检查A的账户余额>5002.A账户汇总扣除500元3.B账户汇总增加500元正常的流程走下来,A账户扣了500元,B账户增加500元,皆大欢喜那如果A账户扣了钱之后,系统出现故障了呢?A白白损失了500,而B也没有收到本 该属于它的500.以上的案例隐藏着一个前提条件...原创 2021-06-11 03:08:44 · 583 阅读 · 1 评论 -
3MySQL数据库-连接python-实现DB类 - 全栈式开发30
MySQL与Python交互一、关系图二、python实现操作数据库安装pymysql : pip install pymysql操作步骤(一)connect() 建立链接⽤于建⽴与数据库的连接conn=connect(host, port, database, user, password, charset)host:连接的mysql主机,如果本机是’localhost’ 或者填‘127.0.0.1’port:连接的mysql主机的端⼝,默认是3306database:数据原创 2021-05-11 02:17:49 · 169 阅读 · 0 评论 -
3MySQL数据库-SQL语句下-⾃关联-外键-分表-视图 - 全栈式开发29
⾃关联----属于查询的那一部分可以简单的理解为⾃⼰与⾃⼰进⾏连接查询。⽐如: ⼀张 areas 表⾥⾯有省市区,我们需要在通过这⼀张表查询某省对应的所有市外键myisam 不支持外键 innoDB支持为了保证数据的一致性...原创 2021-05-11 01:08:39 · 343 阅读 · 3 评论 -
3MySQL数据库-SQL语句上-DDL-DML-全栈式开发28
SQL语句一、DDL语言`SELECT``USE``SHOW``CREATE``DESC``DROP`二、DML语言(一)ALTER改变字段` ADD``MODIFY 与 CHANGE``DROP`(二)增、改、删表数据` INSERT 添加数据`` UPDATE 更新数据`` DELETE 删除数据 与 逻辑删除`,(三)SELECT查询数据一、DDL语言创建数据库,首先得定义数据库名,表的结构DDL语言:数据定义语言,这些语句创建不同数据段、数据库、表、列、索引等数据库对象链接数据库cm原创 2021-05-06 22:31:24 · 976 阅读 · 0 评论 -
3MySQL数据库- SQL语言基础 - 全栈式开发27
SQLSQL介绍SQL是结构化查询语言,是一种永凯操作RDBMS(关系型数据库管理系统)的数据库语言,当前关系型数据库都支持试用SQL语言进行操作,也就是说可以通过SQL操作oracle、sql server、mysql等关系型数据库SQL语言主要分类DDL语言:数据定义语言,这些语句定义了不同数据段、数据库、表、列、索引等数据库对象DML语句:数据操作语句,用于添加、删除、更新和查询数据库记录毛病检查数据完整性DCL语句:数据控制语句,用于控制不同数据段直接许可和访问级别的语句数据完原创 2021-05-05 19:10:07 · 301 阅读 · 0 评论 -
3MySQL数据库-数据库介绍-全栈式开发26
数据库介绍为什么要学习数据库?通常,我们存储数据,直接用本地文件即可,但是,本地文件不利于存放海量数据,也不利于用程序对文件的数据进行查询与管理,那么为了解决这些弊端,才有数据库的出现,那么数据库也是每个程序员比逊掌握的计数数据库的介绍数据库(database)简称DB,是加上就是一个文件集合,是一个存储数据的仓库,本质就是一个文件系统,数据库膳食按照特定的格式吧数据存储起来,用户可以对存储的数据进行增删改查操作数据库存储数据特点持久化存储读写速度极高保证数据的优先性对程序支持非常好,容易原创 2021-04-18 23:42:30 · 438 阅读 · 1 评论 -
2高级编程-协程-全栈式开发25
协程yield 实现协程yiled from 实现协程greenlet 实现协程gevent实现协程一、协程的介绍(一)协程介绍定义协程,又称为微协程,它是实现多任务的另一个方式,只不过是比线程更小的执行单元。因为它自带CPI的上下文,这样只要在合适的时机,我们就可以把一个协程切换到另一个协程,达到多任务的效果,就是利用阻塞的时候去执行另一个。CPU上下文(CPU寄存器和程序计数器):CPU寄存器:是CPU的内置的容量小,但速度极快的内存。处理非常快程序计数器:则是用来存储CPU原创 2021-04-18 23:40:44 · 498 阅读 · 1 评论 -
2高级编程-进程-全栈式开发24
多进程共享全局变量进程之间是不共享全局变量进程之间的通信两个软件之间不共享这个时候就可以使用队列进行通信不共享变量的,所以只能通过队列来传输信息需求:实现函数download中,将list元素保存到队列中实现函数manage_data中,将list元素从队列中取出,并且添加新的列表中使用进程的队列来实现进程的通信如果是普通队列能实现这个功能吗能,但是使用普通队列的时候 不再是使用 start()方法 启动进程 而是使用run()方法start 与 run 的区别start()原创 2021-04-17 01:15:40 · 215 阅读 · 1 评论 -
2高级编程-多任务-线程-全栈式开发23
线程一、多任务(一)多任务介绍同时做多件事情(多个任务)就叫多任务(二)多任务理解四核CPU单核CPU只能同时处理一个程序时间片轮转调度的模式并发:CPU小于当前执行的任务,是假的多任务---------单核CPU就是只能运行一个,但是开了很多个程序运行并行:CPU大于当前执行的任务,是真的多任务(三)实现多任务的三种方式线程进程协程二、线程(一)线程介绍线程(thread)是操作系统能够进行运行调度的最小单位,它被包含在进程中,是进程中的实际运作单位类比:微信是进原创 2021-04-16 15:05:30 · 362 阅读 · 0 评论 -
2高级编程-socket套接字-UDP与TCP通信-全栈式开发22
TCP与UDP介绍(一)TCP协议介绍当应用程序希望通过TCP与另一个人应用程序通信时,它会发送一个通信请求。这个请求必须被送到一个确切的地址。在双方‘握手’之后,TCP将在两个应用之间建立一个双工(full-duplex)的通信这个全双工的通信将占用两个计算机之间的通信路线,直到它被一方或双方关闭为止双方一定要都接收请求后才可以通数据传输发送的消息一定要回复,这样才能保证数据是安全的确保会回复消息4次挥手:断开要4次,你情我愿TCP特点面向连接可靠传输TCP采用发送应答原创 2021-04-14 01:49:09 · 677 阅读 · 0 评论 -
2高级编程-计算机网络通信-全栈式开发21
内容IP地址介绍及分类引入如果两个模块的话,怎么相互交流呢,不是用import下不通过导入模块的方式,如何实现a.py中存数据,b.py读数据相当于现实中的网络通讯这都是同一计算机,如果不同计算之间进行传输通信,那么就会使用到网络,比如QQ,微信等APP应用类程序 eg:QQ客户端web类,eg百度网页端C/S架构client 客户端Server 服务端 一直运行 等待服务别人B/S架构‘Browser 浏览器Server 服务器统一入口的作用B/S架构 在APP端原创 2021-04-13 17:41:49 · 257 阅读 · 0 评论 -
2高级编程-垃圾回收机制-全栈式开发20
getattr__与__getattribute__getattr__是当类调用一个不存在的属性时才会调用 __getattr__魔法函数,它传入的值item就是你这个调用的不存在的 值getattribute__则是无条件的有限执行,所以如果不是特殊情况最好不要用__getattribute属性描述符属性描述符的介绍属性描述符是一个强大的通用协议,它是properties、methods、static methods、class methods、和super()调用原理属性描述符协议属性描述原创 2021-04-13 17:27:23 · 117 阅读 · 0 评论 -
2高级编程-模块-异常-文件- 全栈式开发19
异常一、异常引入程序在运行过程中可能会出现一些错误。比如: 使用了不存在的索引,两个不同类型的数据相加…这些错误我们称之为异常处理异常 程序运行时出现异常,目的并不是让我们的程序直接终止!Python是希望在出现异常时,我们可以编写代码来对异常进行处理代码报错二、异常的处理创建如果出现异常代码就无法运行很麻烦,有些异常还很难发现,所以我们会用到try、except来处理异常try、except 缺一不可else:可有可无,无错会执行finally:可有可无,一定会执行三、原创 2021-04-08 22:45:10 · 233 阅读 · 0 评论 -
2高级编程-面对对象的深度问题-对类进行修改和控制-metaclass-全栈式开发18
一、模块的简介和创建模块的定义模块化指将一个完整的程序分解成一个个的小模块,通过将模块组合,来搭建出一个完整的程序模块化的优点方便开发方便维护模块可以复用分成一个一个小文件,方便查询修改模块的创建在Python当中一个py文件就是一个模块二、模块的使用模块的分两步:导包和访问模块的导包在一个模块中引入外部模块 import 模块名(模块名就是py文件名)可以引入同一个模块多次,但后面的会把前面的覆盖掉import 模块名 as 模块别名from 模块名 impo原创 2021-04-01 21:49:45 · 331 阅读 · 0 评论 -
2高级编程-面向对象下-多态-单例模式-抽象基类-元类-上下文管理器-全栈式开发17
一、鸭子类型与多态鸭子类型python崇尚鸭子类型动态语言条用实力方法时不检查类型,只要方法存在,参数正确,就可以调用,这就是动态语言的鸭子类型,它不要求严格的继承体系,一个对象只要看起来像鸭子,那它就可以被看成是鸭子如动态类型并不严格要求参数的类型,extend会给你处理,只要符合iterable就行定义时的类型和运行是的类型不一样成为多态多态多态是面向对象的三大特性之一。从字面理解就是多种形态一个对象可以以不同形态去呈现面向对象三大特性封装 确保对象中数据的安全继承 保原创 2021-04-01 19:12:31 · 208 阅读 · 0 评论 -
2高级编程-面向对象中-封装-私有属性-继承-super- 多继承查询顺序-全栈式开发16
封装就是为了数据安全,形成了一个默认的规则,告诉你的协同开发者,这个属性很重要,不要随意修改• 出现封装的原因:我们需要一种方式来增强数据的安全性• 1. 属性不能随意修改• 2. 属性不能改为任意的值• 封装是面向对象的三大特性之一• 封装是指隐藏对象中一些不希望被外部所访问到的属性或方法• 我们也可以提供给一个getter()和setter()方法是外部可以访问到属性• getter() 获取对象中指定的属性• setter() 用来设置对象指定的属性• 使用封装,确实增加了类的定义原创 2021-03-31 10:28:11 · 152 阅读 · 0 评论 -
2高级编程-面向对象上-类、实例属性-类、实例方法-__init__方法-全栈式开发15
面向对象上面向对象编程 (opp)是一种程序设计思想所谓面向对象的语言,简单理解就是语言中的所有操作都是通过对象来进行的一、面向过程与面向对象的区别面向过程:根据业务逻辑从上到下写编程面向对象:将数据与函数绑定在一起,进行封装、减少重复代码的重写过程,函数只能实现一个功能,而且函数多,标识符不好取名,也不好定位函数在哪(一)面向过程面向过程指将我们的程序分解为一个一个步骤,通过对每个步骤的抽象来完成程序。这种编写方式往往只适用于一个功能,如果要实现别的功能,往往复用性比较低,原创 2021-03-27 11:28:35 · 273 阅读 · 0 评论 -
1Python基础-PEP8规范编写代码-Pycharm的快捷键使用-全栈式开发14
Python代码风格指南PEP8: Python代码风格指南PEP8 提供了 Python 代码的编写约定. 本节知识点旨在提高代码的可读性, 并使其在各种 Python 代码中编写风格保持一致缩进缩进使用4个空格, 空格是首选的缩进方式. Python3 不允许混合使用制表符和空格来缩进.换行每一行最大长度限制在79个字符以内.顶层函数、类的定义, 前后使用两个空行隔开import 导入建议在不同的行导入建议在不同的行, 例如:import osimport sys不建议如原创 2021-03-25 23:36:13 · 918 阅读 · 0 评论 -
1Python基础-装饰器-推导式-生成器-迭代器-可迭代对象-全栈式开发13
一、装饰器我们可以直接通过修改函数中的代码来完成需求,但是会产生以下一些问题如果修改的函数多,修改起来会比较麻烦不方便后期的维护这样做会违反开闭原则(ocp)程序的设计,要求开发对程序的扩展,要关闭对程序的修改ocp原则(open close prinsaple):开放对代码的扩展,关闭代码的修改如果之前引用过,那么你直接改掉会影响很大,所以我们最好是对函数扩展1 装饰器的要求首先是闭包函数利用@调用def add():装饰器特殊的闭包函数首先要调用函数,然原创 2021-03-25 23:06:37 · 231 阅读 · 0 评论 -
1Python基础-函数-作用域-命名空间-递归-匿名函数-闭包-全栈式开发12
函数模块化提高代码的复用率也是一个对象,即说明它在内存中有地址存放函数对象函数对象fun调用函数fun()def fun(a,b):形参 形式上的参数fun(1,2) 实参 实际参数 当你调用的时候传递的参数默认值def fun(a,b,c=0): #c=给形参指定默认值,当没有传进来的参数时,还是默认值,当有传进来的数时用传递的值位置传参形参与实参位置一一对应关键字传参关键字传参与与位置传参混合位置传参必须放到关键字传参的前面fun(1,3,b=2) 报错,只能改字母f原创 2021-03-19 00:51:30 · 261 阅读 · 0 评论 -
1Python基础-深拷贝-浅拷贝-内存地址id-全栈式开发11
内存地址不可变类型字符串 元组但其实我们好像可以改变字符串:a.upper() a变成大写,但是原来的字符串并没有改变,而是生成了一个新变量,这里的地址就和原来的a不是同一个了提到可变不可变的类型,是指在内存中的地址变不变值改变了,id就改变了可变类型列表 字典 集合值改变了,但是id不改变深拷贝=不可变-分别赋值id就会相等常量、字符串、元组可变-分别赋值id不同,就是两个变量字典、列表浅拷贝copycopy()copy() 方法用来对字典进行潜复制注意原创 2021-03-18 22:46:45 · 276 阅读 · 0 评论 -
1Python基础-基本数据类型3-元组tuple-字典dict-集合set-全栈式开发10
基本数据类型3基本数据类型1int float string基本数据类型2list元组和list一样可以存储各种各样的元素不可变 不希望对数据进行修改用tuple可变 希望对数据进行修改用list对那种不可变的数据,我们通常称呼为常量,如果你要经常调用它,就会很方便可以切片,但是不能对切片赋值如果创建的不是空元组,那么里面至少有一个逗号元组的拆包指将元组当中的每一个元素都赋值给一个变量不能存在两个或两个以上的*号元组作为序列的通用操作+和*、in和not原创 2021-03-17 14:09:59 · 247 阅读 · 0 评论