(13)python更多的内容

一、前言

因个人习惯,在阅读和学习文字资料时,习惯摘写笔记,因此在这里留下自己的学习记录。笔记的内容偏摘抄为主,并非自己的原创内容。

内容基于:《简明 Python 教程》Swaroop, C. H. 著沈洁元  译

二、特殊的方法

定义:有特殊含义的方法,用来模仿某个行为,例如:__init__    __del__

简单介绍:

(1)__init__(self):在新建对象恰好要返回对象前被调用

(2)__del__(self):在对象要被删除前调用

(3)__str__(self):在对象使用print语句或str()函数时调用

(4)__lt__(self,other):在使用‘<’运算符时调用(相应的其他运算符也有对应的方法)

(5)__getitem__(self,key):在使用x[key]索引操作符时调用

(6)__len__(self):在使用len()函数时调用

自定义对象支持索引操作:

在定义的类中实现__getitem__(self)方法即可,因为python的序列类也是这样实现的。

三、单语句块

一般来说,语句块的区分是通过缩进的层次来区分的,但并非一定准确。

因为当语句块只有一条语句时,条件语句和循环语句等支持语句块写在同一逻辑行,但不推荐该编码风格。

四、列表综合

作用:从一个已有的列表导出一个新的列表。(原有列表对象无影响)

例子:把列表中大于2的数增大为原来的2倍,并生成一个新的列表

listone = [1,2,3,4]

listtwo =[2*i for i in listone if i>2]    

其中  2*i为操作语句,即循环体;for i in listone    为循环语句;if i>2 为循环满足条件

五、函数中接收元组和列表

当函数接收的的参数为元组或字典时,使用*和**为前缀的的特殊方法对获取可变数量的参数特别有用。

使用*时,调用函数时,多余的参数会自动称为元组的一部分;

使用**时,调用函数时,多余的参数会自动称为字典的键/值对

六、lambda形式

作用:创建新的函数对象,并且在运行时返回它们。

lambda形式中,只能使用表达式。

当我们使用lambda形式新建对象时,返回的对象为表达式的值,其中lambda本质上需要有一个参数。

make_repeater():函数用于在yu运行时创建对象

例子:

def make_repeater(n):

      return lambda s: s*n

twice = make_repeater(2)

print (twice('world'))

print (twice('5'))

结果为:

worldworld

10

七、exec、eval、assert语句

exec:用来执行存储在字符串中的python语句,例子    exec("print ('hello world')")

eval:用来执行存储在字符串中的有效表达式。例子  eval('2*3')

assert:用于声明某个条件是真的。指定某个条件是真的,非真时引发异常。assert len(list)>2

八、repr函数

作用:用来取得对象的规范字符串表示(反引号,即转换符,可完成功能)

repr(),即把对象以字符串形式输出,类似java中的toString()。例子  repr(对象名)  

我们可以定义类的__repr__函数控制对象被repr()函数调用时返回的内容

猜你喜欢

转载自blog.csdn.net/chen_courage/article/details/81118770