Python 后端第二弹

(一)闭包和 lamda 表达式

  1. 一切变量的保存都需要占用内存。当一个内存空间不再可能被内存访问时,就会被 Python 虚拟机回收,将重新分配给其他变量。
  2. 不能被访问:
    • 变量被 del 语句删除
    • 一般情况下函数中定义的变量在函数运行时被分配给内存空间,在函数运行结束后不再可能被访问
    • 对象不再被任何变量引用时,它不可能被访问
  3. 关于函数运行分配内存的说明
    • 每个函数运行时都要分配给它一定的内存空间
    • 同一个函数多次执行,不一定每次都分配了同样的内存 空间
    • 如果函数执行过一次后,其内存空间没有完全被回收。则再次运行时分配的内存应当避开这些没有被回收的空间,另外开辟一块
    • 在并发(或并行)执行多个函数时,无论他们是否是同一个函数名,无论他们是否来自于同一段代码定义,每个函数都分配有独立的一块内存空间
  4. 闭包机制
    • 对于“闭包”可以从三个方面理解
      • 语法上:闭包是指利用函数定义嵌套,外层函数限制内层函数定义的自由变量
      • 实现上:闭包是通过利用函数可以作为返回值(或函数的参数)的特性以及内存管理机制,保持对一个已经执行完毕的函数的变量进行访问。(由于访问被保持,所以这些变量的内存并不会被回收)
      • 意义上:闭包函数所“包”的变量能且仅能被这个函数访问,这样就保持了数据的纯净,防止数据被污染(被其他代码访问或修改)
    • 简单来说:设有一对有嵌套关系的函数定义。内层函数中有可以访问外层函数变量的代码。通过保持对内存函数的访问已经执行完的外层函数的变量不被删除

(二)浏览器传来的 Query

  浏览器客户端传来 Query 的方法可以有两种,一种是用 GET 方法,另外一种是用 POST 方法

  GET

    • 请注意,查询字符串(名称/值对)是在 GET 请求的 URL 中发送的:
    • GET 请求可被缓存
    • GET 请求保留在浏览器历史记录中
    • GET 请求可被收藏为书签
    • GET 请求不应在处理敏感数据时使用
    • GET 请求有长度限制
    • GET 请求只应当用于取回数据
    • /test/demo_form.asp?name1=value1&name2=value2

  POST

    • POST 请求不会被缓存
    • POST 请求不会保留在浏览器历史记录中
    • POST 不能被收藏为书签
    • POST 请求对数据长度没有要求
    • POST /test/demo_form.asp HTTP/1.1
      Host: w3schools.com
      name1=value1&name2=value2

原文地址:https://www.cnblogs.com/owenqing/p/10321494.html

时间: 2024-10-22 19:20:36

Python 后端第二弹的相关文章

python django第二弹

每天晚上应该就这样坐着,然后把每天的东西做个总结,或大或小,有的人可能愿意把自己的东西保留在草稿箱,想想我还是把他写出来吧,前几次我发现又遇到了之前遇到的简单的问题,翻看自己之前写的几篇小日记,可以很快的找到了问题所在,哈哈,说明还是有那么一丁点的价值.ok,到此为止. source django/Scripts/activate //come into virtualenv django-admin startproject first //create a project 注:防止端口占用的

python学习第二天

python学习的第二天就是个灾难啊,这天被打击了,自己写的作业被否认了,不说了,写博客还是个好习惯的,要坚持下去,就不知道能坚持到什么时候.呵呵!!! 这天教的知识和第一天的知识相差不大,区别在于比第一天讲的更细了(我们是两个老师教的,风格是不一样的),这次也写那些比较细的知识点. python的简介 (1)你的程序一定要有个主文件. (2)对于python,一切事物都是对象,对象基于类创建.#似懂非懂,不过有那么点似懂. 知识点 #__divmod__ 会把两个数字相除的商和余数以元组的方式

《我与希乐仑》第二弹

致徐敏: 如果你觉得我的这篇报道侵害了你和贵公司的权益,你可以上法院告我,但我说的都是事实,不怕你告,有事找我律师,谢谢! 我是希乐仑科技发展(上海)有限公司前员工,曾经为希乐仑立下汗马功劳.这公司从2014年2月份开始搞我,我去年的绩效是3.8/5.0,完全没有绩效问题.他们倒好,自从我查完我们公司某商业间谍之后,就给我穿小鞋,说我这个不好,那个拖延,这不是扯淡吗?公司在3月5日非法把我裁掉,而且直到现在还未支付我2月份工资,行吧,那我就不再沉默了,当我吃素的是吧!我现在把这件事情公之于众,望

深究angularJS系列 - 第二弹

深究angularJS系列 - 第二弹,在初步了解了Angular的基础上,进一步的针对Angular的控制器和作用域问题深入探究O(∩_∩)O~~ Angular控制器 控制器(Controller)的理解 控制器是对view的抽象,用来接收view的事件,响应view的请求: 控制器包含view的静态属性和动态的方法: 控制器与view是一对一的关系. 控制器(Controller)的结构 1 .controller("控制器的名字",function($scoppe){ 2 ..

C/C++中容器vector使用方法<第二弹>

此文总结常用vector操作,是前一篇的续作!只有代码,详细请看代码中的注释.出于反爬虫的目的,你不是在http://blog.csdn.net/zhanh1218上看到的,肯定不是最新最全的. /********************************************************************* * file_name: vector_test.cpp * * Created on: 2014年6月28日 下午3:34:23 * Author: The_T

线段树第二弹(区间更新)

上篇文章,我们介绍了线段树的基本概念和单点更新.区间查询,今天,我们来接着上次的线段树问题继续深入研究.在解决线段树问题的过程中,我们会遇到要求修改区间中某一元素值的问题,当然也可能会遇到要求修改一段子区间所有值的问题--即区间更新问题.回忆一下上篇文章单点更新的方法是,由叶节点逐级向上进行更新,此时更新一个节点值的时间复杂度为o(log n),(点击链接了解详情:线段树+RMQ问题第二弹),那么以这样的处理效率来进行区间更新结果会怎样?现在假设待更新区间数据的规模为 n ,那么就需要进行 n

python 学习第二天 (上)

##课前思想 ###GENTLEMEN CODE 1 * 着装得体 * 每天洗澡 * 适当用香水 * 女士优先 * 不随地吐痰.不乱扔垃圾.不在人群众抽烟 * 不大声喧哗 * 不插队.碰到别人要说抱歉 * 不在地铁上吃东西 * 尊重别人的职业和劳动 * 尊重别人隐私.不随便打听别人工资 * 与人保持安全距离(1米) * 不要随便评价别人 ###GENTLEMEN CODE 2 * 多去旅行,一年至少一个国家 * 多看数,电影,一年15本书,50+部电影 * 学好英语 * 保持不甘心.保持正能量

MongoDB第二弹——基本操作

1 查看各个项目的Project ID编号 mysql -uroot -h10.10.2xx.xx show databases; use bugfree2; desc bf_TestProject; select ProjectID,ProjectName from bf_TestProject;(查询结果如下) 2 在/var/www/html/bugfree/BugFile路径下创建文件夹 mkdir Project2  Project3  Project4  Project5  Proj

python基础第二课

一  认识模块 1.1  sys #!/usr/bin/env python3 # Author: Sam Gao import sys print(sys.path) #打印PYTHONPATH环境变量 # ['/home/sam/PycharmProjects/s14/day1', # '/home/sam/PycharmProjects/s14', # '/usr/lib/python35.zip', # '/usr/lib/python3.5', # '/usr/lib/python3.