十三. 标准库
完整的Python标准库文档参考:http://docs.python.org/dev/3.0/library/标准库学习教程:
http://www.doughellmann.com/projects/PyMOTW/
十四. 更多
1. 函数返回多个值
>>>def get_error_details():
return (2, 'second error details')
>>>(errnum, errstr) = get_error-details
通过元组的方式返回多个参数值,接收返回值是也采用元组。还可以(a, *b)方式接收返回值,如
>>>def get_more_result():
return (1, 2, 3, 4)
>>>(a, *b) = get_more-result()
>>>a # 输出1
>>>b # 输出[2, 3, 4]
2. 特殊函数
__init__(self,...) 构造函数,创建对象时调用
__del__(self) 销毁函数,对象销毁时调用
__str__(self) 执行print(对象)或str(对象)时调用
__lt__(self, other) 执行小于比较运算时调用(即<重载)
__getitem__(self, key) 执行索引操作x[key]时调用
__len__(self) 执行len(对象)时调用
更多特殊函数参考http://docs.python.org/dev/3.0/reference/datamodel.html#special-method-names
3. 单语句块
只有一个语句的块可以直接放到前面的语句后,位于同一行。如
>>>if True: print 'Yes'
4. Lambda语句
Lambda语句用于动态创建函数对象。lambda语句由关键字lambda后跟表达式组成,不能跟其他语句。如
#!/usr/bin/python
# Filename: lambda.py
def make_repeater(n):
return lambda s: s * n
twice = make_repeater(2)
print(twice('word'))
print(twice(5))
>>>python lambda.py
wordword
10
5. 列表推导式
列表推导式用于从已有列表按照一定规则生成新的列表。该过程对原列表没有任何影响。如
>>>listone = [2, 3, 4]
>>>listtwo = [2*i for i in listone if i > 2]
>>>print(listtwo) # 输出[6,8]
>>>print(listone) # 输出[2,3,4]
6. exec和eval函数
(1) exec函数用来执行动态存放在字符串或文件中的Python命令。如:
>>>exec('print("Hello World")') # 输出: Hello World
(2) eval函数用来计算存放在字符串中的Python表达式。如:
>>>eval('2*3') # 输出:6
7. 断言assert
断言语句用来假定某表达式为True,当断言的表达式为false时,抛出AssertionError错误。如:
>>> a = 1
>>> assert a > 1
Traceback (most recent call last):
File "<pyshell#28>", line 1, in <module>
assert a > 1
AssertionError
8. repr函数
repr函数用来获取对象的标准字符串表示,一般情况下eval(repr(object))==object。如:
>>> i = ['item']
>>>repr(i) # 输出"['item']"
>>>eval(repr(i)) # 返回['item']
>>>eval(repr(i)) == i
说明:可以通过定义类的__repr__(self)方法控制类对象执行repr的返回值。