简明Python教程 --- 15.更多Python的内容
来源:互联网 发布:电炖盅 知乎 编辑:程序博客网 时间:2024/05/05 23:52
特殊的方法
在类中,某些方法是有特殊含义的,这在前面也提到过。例如__init__方法和__del__方法。
这些特殊的方法是非常有用的,例如,你想让你的类的对象可以使用索引,比如obj[key],那么只要你的类中实现了__getitem__方法就可以了。
一些特殊的方法:
名称
说明
__init__(self,...)
这个方法在新建对象恰好要被返回使用之前被调用。
__del__(self)
恰好在对象要被删除之前调用。
__str__(self)
在我们对对象使用
语句或是使用
str()
的时候调用。
__lt__(self,other)
当使用
小于
运算符(<)的时候调用。类似地,对于所有的运算符(+,>等等)都有特殊的方法。
__getitem__(self,key)
使用
x[key]
索引操作符的时候调用。
__len__(self)
对序列对象使用内建的
len()
函数的时候调用。
单语句块
在之前的介绍中,你已经看到,在Python中,语句块是通过缩进来表示它们属于同一层次,并且是上一层次的子层次。
但是,并不是所有情况下,都需要换行缩进。如果一个语句块中只有一条语句。并且它的上一层次是判断条件语句或循环语句,那么这个语句块可以和上一层次写到同一行中。例如:
flag = True;
if flag : print 'flag is True.';
列表综合
通过列表综合,你可以使用循环语句初始化一个列表:
list1 = [1, 2, 5, 3, 7, 8];
list2 = [i for i in list1 if i > 3];
让函数接收列表或元组类型的参数
当要使函数接收元组或字典形式的参数的时候,有一种特殊的方法,它分别使用*和**前缀。
def method(arg1, *args)
由于在args变量前有*前缀,所有多余的函数参数都会作为一个元组存储在args中。如果使用的是**前缀,多余的参数则会被认为是一个字典的键/值对。
lambda形式
lambda语句被用来创建新的函数对象,并且在运行时返回它们。
def method(prefix) :
return lambda s : prefix + ":" + s;
newMethod = method("abc");
print newMethod("111");
print newMethod("222");
lambda语句用来创建函数对象。本质上,lambda需要一个参数,后面仅跟单个表达式作为函数体,而表达式的值被这个新建的函数返回。
注意,即便是print语句也不能用在lambda形式中,只能使用表达式。
exec和eval语句
exec语句用来执行储存在字符串或文件中的Python语句。
例如,我们可以在运行时生成一个包含Python代码的字符串,然后使用exec语句执行这些语句。
exec 'print "Hello World"';
eval语句用来计算存储在字符串中的有效Python表达式。例如:
eval("2*3");
assert语句
assert语句用来声明某个条件是真的。
例如,如果你非常确信某个你使用的列表中至少有一个元素,而你想要检验这一点,并且在它非真的时候引发一个错误,那么assert语句是应用在这种情形下的理想语句。
当assert语句失败的时候,会引发一个AssertionError。
list = ["abc"];
assert len(list) > 1;
repr函数
repr函数用来取得对象的规范字符串表示。
list = ["item1", "item2"];
print repr(list);
执行上面的程序,将会输出:["item1", "item2"]。
注意,在大多数时候有eval(repr(object)) == object。你可以通过定义类的__repr__方法来控制你的对象在被repr函数调用的时候返回的内容。
- 简明Python教程 --- 15.更多Python的内容
- 《简明Python教程》之更多
- python 的更多内容
- 简明Python教程 14)标准库 15)更多内容 16)GUI
- 第十五章 更多python的内容
- python学习:更多字符串的内容
- 简明 Python 教程
- 简明 Python 教程
- 简明Python 教程 --模块
- 简明Python教程
- 简明 Python 教程
- 《简明Python教程》读书笔记
- [ 转]简明 Python 教程
- 《简明Python教程》笔记
- python简明教程
- 简明 Python 教程
- 再读简明Python教程
- 《简明Python教程》读书笔记
- 简明Python教程 --- 13.异常处理
- Android Gallery背景图片到替换
- Oracle中去掉重复的值(有重复值随便取一条值)
- Android----动作感应技术,游戏编程 3D编码
- 简明Python教程 --- 14.Python标准库
- 简明Python教程 --- 15.更多Python的内容
- 简明Python教程 --- 16.接下来学习什么
- 编译postgresql与pgagent
- Ajax.Request
- ImageMagick 问题 convert: unable to read font `Candice'
- 剥离PC,惠普押注云计算胜算几何?
- 使用pgagent构建分布式程序运行环境
- 一个bug引发的血案(大爆炸)
- android中的汉字转拼音