最直观的上下文,莫过于小学的语文课,经常会问联系上下文,推测...,回答...,表明作者...。文章里的上下文比较好懂,无非就是前与后。在了解了计算机的执行状态,程式的运行,才稍微对计算机的上下文(context)有了一定的认识,多半还是只可意会,不可言传。本文所讨论的上下文,简而言之,就是程式所执行的环境状态,或者说程式运行的情景。提及上下文,就不可避免的涉及Python中关于上下文的魔法,即上下文管理器(contextor)。资源的创建和释放场景上下文
系统 2019-09-27 17:55:33 1864
最近新需求来了,要给系统增加几个资源权限。尽量减少代码的改动和程序的复杂程度。所以还是使用装饰器比较科学之前用了一些登录验证的现成装饰器模块。然后仿写一些用户管理部分的权限装饰器。比如下面这种defpermission_required(permission):defdecorator(f):@wraps(f)defdecorated_function(*args,**kwargs):ifnotcurrent_user.can(permission):ab
系统 2019-09-27 17:55:30 1864
在Python中字符串是不可变变量,对其进行切片及其中的元素复制都会报错>>>str="ThisisPython">>>str[0:3]="abc"Traceback(mostrecentcalllast):File"",line1,inTypeError:'str'objectdoesnotsupportitemassignment其常用的方法:split用法:str.split(sep=None,maxsplit=-1)将字符串划分为序列>>>env=
系统 2019-09-27 17:55:21 1864
这几天和几个朋友以各种途径讨论过OOP的相关问题,他们是:令狐虫、Frank、晋剑、小冯大家对OOP有不同看法,所谓工程派和学院派看法不一致。从应用的角度看,工程派的观点是值得推荐的,那就是:不用太在意内部是怎么工作的,只要能够解决眼下的问题即可。但是,对于学习者而言,如果仅仅停留在工程派的层面(特别提醒,上述几位朋友都是工程派的大侠,他们可不是简单地能够使用,其实是更高层次的“无招胜有招”),学习者可能感觉有点不透彻。所以,学习者,特别是初学者,要知道一
系统 2019-09-27 17:55:20 1864
枚举是常用的功能,看看Python的枚举.fromenumimportEnumMonth=Enum('Month',('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'))枚举的定义首先,定义枚举要导入enum模块。枚举定义用class关键字,继承Enum类。注意:定义枚举时,成员名称不允许重复默认情况下,不同的成员值允许相同。但是两个相同值的成员,第二个成员的名称
系统 2019-09-27 17:55:15 1864
概述Python3对函数参数的排序规则更加通用化了,即Python3keyword-only参数,该参数即为必须只按照关键字传递而不会有一个位置参数来填充的参数。该规则在处理人一多个参数是很有用的。keyword-onlykword_only(1,2,3,c=4)print('-'*20)kword_only(a=1,c=3)示例结果:1(2,3)4--------------------1()3在*args之后的参数都需要在调用中使用关键字的方式传递,否
系统 2019-09-27 17:54:57 1864
前面说到了urllib2的简单入门,下面整理了一部分urllib2的使用细节。1.Proxy的设置urllib2默认会使用环境变量http_proxy来设置HTTPProxy。如果想在程序中明确控制Proxy而不受环境变量的影响,可以使用代理。新建test14来实现一个简单的代理Demo:复制代码代码如下:importurllib2enable_proxy=Trueproxy_handler=urllib2.ProxyHandler({"http":'ht
系统 2019-09-27 17:54:48 1864
SQLite是一款轻型的数据库,是遵守ACID的关系型数据库管理系统。不像常见的客户-服务器范例,SQLite引擎不是个程序与之通信的独立进程,而是连接到程序中成为它的一个主要部分。所以主要的通信协议是在编程语言内的直接API调用。Python标准库包含一个SQLite包装器:使用模块sqlite3实现的PySQLite。下面是一个操作SQLite数据库的例子:创建表、插入记录、查询记录。importsqlite3#创建直接到数据库文件的连接,如果文件不存
系统 2019-09-27 17:54:40 1864
一:从各种不同的格式文件中导入数据,总结目前最常用的文件格式导入数据的一些方法:#-*-coding:utf-8-*-fromnumpyimport*defloadDataSet(fileName):'''导入数据'''numFeat=len(open(fileName).readline().split('\t'))-1dataMat=[]labelMat=[]fr=open(fileName)forlineinfr.readlines():lineAr
系统 2019-09-27 17:54:24 1864
关卡二:1.练习题1面向对象的理解要求:在类内定义一个可以重新设置私有属性name的函数条件为字符串长度小于10,才可以修改.答:defSetName(self,newname):iflen(newname)<10:self.__name=newnameelse:print("error:名字太长!")在创建一个类之后需要调用什么函数?答:应调用__del__()函数.del()方法是手动调用还是类默认调用?答:手动调用如何访问对象的属性?答:使用(.)来
系统 2019-09-27 17:54:18 1864