pep

Python 的 with 语句

↘锁芯ラ 提交于 2021-01-10 05:34:29
With语句适用于对资源进行访问的场合,确保不管使用过程中是否发生异常都会执行必要的“清理”操作,释放资源,比如文件使用后关闭,线程中锁的获取和释放等。 术语 介绍一组与上下文管理器和with语句有关的概念。 上下文管理协议(Context Management Protocol) :包含方法 __enter__() 和 __exit__() ,支持该协议的对象要实现这两个方法。 上下文管理器(Context Manager) :支持上下文管理协议的对象,定义执行with语句时要建立的运行时上下文,负责执行with语句块上下文中的进入与退出操作。 运行时上下文(Runtime Context) :由上下文管理器创建,通过上下文管理器的 __enter__() 和 __exit__() 方法实现。 __enter__() 方法在语句体执行之前进入运行时上下文; __exit__() 在语句体执行完后从运行时上下文退出。 上下文表达式(Context Expression) :with语句中关键字with的表达式,返回一个上下文管理器对象 语句体(With-Body) :with语句下的代码块,在执行语句体之前会调用上下文管理器的 __enter__() 方法,执行完语句体之后会执行 __exit__() 方法。 基本语法 with语句的语法格式如下: with context

IIS 之 在IIS7、IIS7.5中应用程序池最优配置方案

梦想与她 提交于 2021-01-07 08:10:41
IIS 之 在IIS7、IIS7.5中应用程序池最优配置方案   找到Web站点对应的应用程序池,“应用程序池” → 找到对应的“应用程序池” → 右键“高级设置...”    一、一般优化方案   1、基本设置   [1] 队列长度: 默认值1000,将原来的队列长度改为 65535。   [2] 启动32位应用程序:默认值False,改为True, 否则安装一些32的组建或32位的php都会出错。   [3] 托管管道模式:Integrated 或 Classsic。      2、高级设置    [1] 闲置超时(分钟):默认20分钟,修改设长。   [2] 快速故障防护 → 已启用 :默认True,改为False。      3、解决PEP第一次打开PEP速度慢   回收间隔时间      使用windows server 2008 r2解决回收假死的问题   打开应用程序池 -> 高级设置 ->在“禁止重叠回收”里选择“true”,这样就有效避免了应用程序池回收假死问题。    二、支持同时10万个请求   通过对IIS7的配置进行优化,调整IIS7应用池的队列长度,请求数限制,TCPIP连接数等方面,从而使WEB服务器的性能得以提升,保证WEB访问的访问流畅。   站点碰到如下问题:   Error Summary:   HTTP Error 503.2 -

用 VSCode 编写 python

自闭症网瘾萝莉.ら 提交于 2021-01-03 11:39:34
一、coding 1、选择一个Python解释器 通过 命令选项板(⇧⌘P) ,键入 Python:Select Interpreter 命令,然后选择一个解释器。 成功后左下角出现: 2、运行代码 二、重构 1、提取变量 / 方法 2、整理和排序 imports 三、formatting & linter 为什么要把 formatting 和 linter 放在一起说,两个其实是不同的东西(虽然通常一起协作)。因为市面上的工具有的是单独的,有时候是两者兼有,网上也没有一篇真正梳理的比较好的文章。我也就懒得分了,姑且直接以 集成进 vscode 为使用场景来分别介绍这两种。 1、formatting - 支持 vscode 支持 autopep8 (默认), black 或 yapf 。 (1)指定 "python.formatting.provider": "autopep8" 默认的 autopep8 无需安装,但是如果要用 black 或 yapf,则需要 pip install 它们。 (2)配置 # 形如 "python.formatting.[name]Args": ["--line-length", "100"],譬如: "python.formatting.blackArgs": ["--line-length", "100"] 2、formatting - 推荐

OpenStack基础知识-tox的详解介绍

感情迁移 提交于 2021-01-03 09:24:29
1、tox简介 tox是通用的虚拟环境管理和测试命令行工具。tox能够让我们在同一个Host上自定义出多套相互独立且隔离的python环境,每套虚拟环境中可能使用了不同的 Python 拦截器/环境变量设置/第三方依赖包。所以 tox 最典型的应用就是用于测试 Python 程序的兼容性了。tox是openstack社区最基本的测试工具,比如python程序的兼容性、UT等。 它的目标是提供最先进的自动化打包、测试和发布功能。 1)作为持续集成服务器的前端,大大减少测试工作所需时间; 2)检查软件包能否在不同的python版本或解释器下正常安装; 3)在不同的环境中运行测试代码。 一般 openstack 项目中的 tox 的功能包含了: 打源码包(sdist)、单元测试(UT)、测试覆盖率(coverage)、代码格式检查(pep8,flake) 等功能. 关键字解释:打源码包(sdist)、单元测试(UT)、测试覆盖率(coverage)、代码格式检查(pep8,flake) 2、使用pip方式安装tox 1)安装pip 安装epel扩展源: yum -y install epel-release 更新完成之后,就可安装pip: yum -y install python-pip 安装完成之后清除cache: yum clean all 2)安装tox $ pip

What will be the benefits of type hinting in Python? [closed]

廉价感情. 提交于 2020-12-30 05:11:40
问题 Closed . This question needs to be more focused. It is not currently accepting answers. Want to improve this question? Update the question so it focuses on one problem only by editing this post. Closed 3 years ago . Improve this question I was reading through the PEP 484 -- Type Hints when it is implemented, the function specifies the type of arguments it accept and return. def greeting(name: str) -> str: return 'Hello ' + name My question is, What are the benefits of type hinting with Python

Pycharm配置AutoPEP8进行代码规范

我的未来我决定 提交于 2020-12-28 23:23:29
autopep8是一个可以将Python代码自动排版为PEP8风格第三方包,使用它可以轻松地排版出格式优美整齐的代码。 配置环境 windows 7 64位专业版(1809) pycharm professional 2020.3 python3.8.7 64位 操作步骤 使用pip下载autopep8: pip install autopep8 将autopep8添加到External Tools, 在Pycharm中点击 File--Settings---Tools--External Tools, 点击图中加号图标添加扩展工具: 上图中,需要填写Name, Program, Arguments, Working directory 以及Output Filters这几项。填写内容如下: Name:可以随意命名,如:AutoPEP8 Program:需要填写autopep8.exe的存放路径,如: D:\ProgramFiles\Python\Python38\Scripts\autopep8.exe Arguments: --in-place --aggressive --aggressive $FilePath$ Woking directory: $ProjectFileDir$ Output Filters输入: $FILE_PATH$\:$LINE$\:$COLUMN

权限系统的基本概念和架构

大兔子大兔子 提交于 2020-12-23 12:39:32
文章目录 简介 授权流程 权限系统的架构 简介 权限系统是我们在系统设计和应用中一种非常常见的系统。一般来说权限系统的功能分为认证和授权两种。认证就非常简单的,验证完用户名密码就算认证成功,而授权里面的套路就很多了,本文将会详细讲解权限系统中的一些基本概念和设计上面要注意的问题,希望大家能够喜欢。 授权流程 在授权流程中主要有三个部分,分别是资源管理,权限和策略管理,策略的执行。 先看下资源管理: 首先我们需要创建一个资源服务器,然后在资源服务器中创建各种资源,最后对各种资源设置一些scope,scope就是跟资源相关的的一些可执行的操作。 什么是资源呢?资源可以是一个web页面,一个RESTful资源,一个文件等等。 举个例子,假如我们有一个图书馆资源服务器,图书馆有一个本《人月神话》的书,那么这本书就被称作资源。接下来我们需要为这个资源定义一些可操作性的scope,或者说策略。比如说只有本校的学生才能够借阅这本书。 当我们定义好资源之后,就需要对这些资源进行一些权限和策略的设置,这就需要进行权限和策略管理。 看下权限和策略管理的流程: 首先是创建策略,然后定义权限,最后将权限和策略进行关联。 策略就是定义的一些去访问某些资源或者权限的操作,策略是和具体的权限是分离的,策略只制定了在什么情况下可以做(某些事情),或者在某些情况下不能做(某些事情),这些事情就是后面创建的权限。

《Python核心技术与实战》笔记3

做~自己de王妃 提交于 2020-12-21 17:00:00
《Python核心技术与实战》笔记1 《Python核心技术与实战》笔记2 《Python核心技术与实战》笔记3 编码风格 《8 号 Python 增强规范》(Python Enhacement Proposal #8),简称 PEP8; # 错误示例 adict = { i : i * 2 for i in xrange ( 10000000 ) } for key in adict . keys ( ) : print ( "{0} = {1}" . format ( key , adict [ key ] ) ) # keys() 方法会在遍历前生成一个临时的列表,导致上面的代码消耗大量内存并且运行缓慢。正确的方式,是使用默认的 iterator。默认的 iterator 不会分配新内存,也就不会造成上面的性能问题 # 正确示例 for key in adict : PEP 8 规范告诉我们, 请选择四个空格的缩进,不要使用 Tab,更不要 Tab 和空格混着用。 PEP 8 规定, 全局的类和函数的上方需要空两个空行,而类的函数之间需要空一个空行 。 Python 中我们可以使用 # 进行单独注释,请记得要在 # 后、注释前加一个空格。 合理利用assert assert 1 == 2 assert 1 == 2 , 'ersaijun:assertion is wrong

千万不要错过这几道Python面试题,Python面试题No16

非 Y 不嫁゛ 提交于 2020-12-19 18:23:39
第1题: python下 多线程 的限制以及 多进程 中传递参数的方式? python多线程有个全局解释器锁(global interpreter lock),简称GIL,这个GIL并不是python的特性,他是只在Cpython解释器里引入的一个概念,而在其他的语言编写的解释器里就没有这个GIL例如:Jython。 这个锁的意思是任一时间只能有一个线程运用解释器,跟单cpu跑多个程序一个意思,我们都是轮着用的,这叫“并发”,不是“并行”。 为什么会有GIL? 多核CPU的出现,充分利用多核,采用多线程编程慢慢普及,难点就是线程之间数据的一致性和状态同步 说到GIL解释器锁,我们容易想到在多线程中共享全局变量的时候会有线程对全局变量进行的资源竞争,会对全局变量的修改产生不是我们想要的结果,而那个时候我们用到的是python中线程模块里面的互斥锁,哪样的话每次对全局变量进行操作的时候,只有一个线程能够拿到这个全局变量;看下面的代码: import threading global_num = 0 def test1(): global global_num for i in range(1000000): global_num += 1 print("test1", global_num) def test2(): global global_num for i in range

【NOIP2007普及组】奖学金

流过昼夜 提交于 2020-12-12 02:59:09
Description 某小学最近得到了一笔赞助,打算拿出其中一部分为学习成绩优秀的前5名学生发奖学金。期末,每个学生都有3门课的成绩:语文、数学、英语。先按总分从高到低排序,如果两个同学总分相同,再按语文成绩从高到低排序,如果两个同学总分和语文成绩都相同,那么规定学号小的同学 排在前面,这样,每个学生的排序是唯一确定的。 任务:先根据输入的3门课的成绩计算总分,然后按上述规则排序,最后按排名顺序输出前五名名学生的学号和总分。注意,在前5名同学中,每个人的奖学金都不相同,因此,你必须严格按上述规则排序。例如,在某个正确答案中,如果前两行的输出数据(每行输出两个数:学号、总分) 是: 7 279 5 279 这两行数据的含义是:总分最高的两个同学的学号依次是7号、5号。这两名同学的总分都是 279 (总分等于输入的语文、数学、英语三科成绩之和) ,但学号为7的学生语文成绩更高一些。如果你的前两名的输出数据是: 5 279 7 279 则按输出错误处理,不能得分。 Input 第1行为一个正整数n,表示该校参加评选的学生人数。 第2到n+1行,每行有3个用空格隔开的数字,每个数字都在O到100之间z第1行的3个数 字依次表示学号为j-1的学生的语文、数学、英语的成绩。每个学生的学号按照输入顺序编号为l~n (恰好是输入数据的行号减1)。 所给的数据都是正确的,不必检验。 Output