Python的高级特性1-7系列是本人从Python2过渡3时写下的一些个人见解(不敢说一定对),接下来的系列主要会以类级为主. 类,对象,实例,方法是几个面向对象的几个基本概念,其实我觉得很多人并不是真正了解这一块. 举个例子进行测试一下: In [19]: class A(): ....: pass ....: In [20]: a = A In [21]: type(a) Out[21]: classobj In [22]: class B(object): ....: pass ....…
本节跟第三节关系密切,最好放在一起来看:python的高级特性3:神奇的__call__与返回函数 一.闭包:闭包不好解释,只能先看下面这个例子: In [23]: def outer(part1): ....: def inner(part2): ....: return part2*part1 ....: return inner ....: In [24]: f = outer(33) In [25]: f(100) Out[25]: 3300 In [26]: f(11) Out[26]…
python的高级特性:切片,迭代,列表生成式,生成器,迭代器 #演示切片 k="abcdefghijklmnopqrstuvwxyz" #取前5个元素 k[0:5] k[:5] #后5个元素 k[-5:] #vwxyz #每隔一个取一个 k[::2] #acegikmoqsuwy #原样复制一个 k[:] #演示迭代 d={'a':1,'b':2,'c':3} for key in d: print(key) #结果输出abc, 即输出key, 而且要注意dict的迭代顺序不像lis…
用户表单是Web端的一项基本功能,大而全的Django框架中自然带有现成的基础form对象,本文就Python的Django框架中forms表单类的使用方法详解. Form表单的功能 自动生成HTML表单元素 检查表单数据的合法性 如果验证错误,重新显示表单(数据不会重置) 数据类型转换(字符类型的数据转换成相应的Python类型) Form相关的对象包括 Widget:用来渲染成HTML元素的工具,如:forms.Textarea对应HTML中的<textarea>标签 Field:Form…
掌握了Python的数据类型.语句.函数,基本可以编写出很多有用的程序了.但是Python中,代码不是越多越好,而是越少越好.代码不是越复杂越好,而是越简单越好.基于这一思想,我们来介绍python中非常有用的高级特性,1行代码能实现的功能绝不用5行代码,请始终牢记,代码越少,开发效率越高. 切片(Slice) 取一个list或tuple的部分元素是非常常见的操作,比如,一个list如下: L=['Micheal','Sarah','Bob','Jack'] 当我们要取前N个元素,使用循环操作很…
掌握了python的数据类型,语句和函数,基本上就可以编出很多有用的程序了. 但是在python中,并不是代码越多越好,代码不是越复杂越好,而是越简单越好. 基于这个思想,就引申出python的一些高级特性. 切片 在python中,取list或者是tuple的部分元素是非常常见的操作. L = ["gege","gege","egye"]; [L[0],L[1],L[2]] 上面这个是一个笨办法,因为扩展一下,取前面n个元素就没办法了. r =…
Python 高级特性 2 列表生成式 列表生成式就是指类似这样的代码:[x for x in range(1, 11)] >>> L = [x for x in range(1, 11)] >>> L [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 生成了一个列表L,从1到10的列表,一共(11-1)-1 = 9个元素. L这个列表也可以这样生成:L = list(range()). >>> L= list(range(1, 11))…
Python 高级特性 1 切片 将L = ['Michael', 'Sarah', 'Tracy', 'Bob', 'Jack']列表中前上个3个元素: L = ['Michael', 'Sarah', 'Tracy', 'Bob', 'Jack'] r = [] n = 3 for i in range(n): r.append(L[i]) print(r) 运行: ['Michael', 'Sarah', 'Tracy'] 使用循环,书写的代码量较多,我们可以使用切片的方式: L = ['…
__call__是一个很神奇的特性,只要某个类型中有__call__方法,,我们可以把这个类型的对象当作函数来使用. 也许说的比较抽象,举个例子就会明白. In [107]: f = abs In [108]: f(-10) Out[108]: 10 In [109]: dir(f) Out[109]: ['__call__', '__class__', '__delattr__', '__dir__', ...] 上例中的f对象指向了abs类型,由于f对象中有__call__方法,因此f(-1…
一.切片(Slice) 在很多编程语言中,针对字符串提供了很多截取函数(i.e.  substring),目的就是对字符串切片.python中没有针对字符串的截取函数,需要通过“切片”来完成. 取一个list或tuple的部分元素可以用切片 格式:  假定list或tuple组成的元素组名为m m[起始值:终止值:步长] 说明: a. 起始值如果是0,可以省略,但是中间的冒号(:)一定要带上 b. 起始值,终止值限定的是索引范围. c. 如果从前面开始取数,那么索引时不包括索引[终止值],因为索…