您的位置:首页 > 编程语言 > Python开发

Python学习笔记---高级主题

2010-04-10 21:58 232 查看
1.列表的递归---用于输出列表字符串中的每个元素
>>> def printList(L):
    #如果为空,则什么都不做
    if not L:
        return
    #如果是链表,则对第一个元素调用printList函数
    if type(L[0])==type([]):
        printList(L[0])
    else:#如果不是链表,仅输出元素即可
        print L[0]
    #处理L的其他部分
    printList(L[1:])
>>> aList=['a',['b','c',['d','e']],'f',[],'g']
>>> printList(aList)
a
b
c
d
e
f
g
>>>
由于上例中是列表的嵌套,所以我们必须测试首项是否为一个列表,如果是,则递归调用printList()函数,如果不是,那我们就简单地打印它。处理完首项后,我们将继续处理列表的其他各项。
在大型数据结构中,递归会耗尽内存,因此,如果你的内存比较小,或者想处理很大的数据结构,那么使用更复杂的常规代码可能更安全些。
2.Python有三种名字空间:
    局部---在类,模块或方法中定义的名字
    模块---在文件中定义的名字
    内置---python自身定义的名字



如果要访问模块名字空间,使用import
3.事件驱动编程:面向批处理的程序流程是---启动程序,处理事情,然后终止程序;而事件驱动程序流程是---只有通过事件触发,程序才启动程序,等待事件,然后由事件通知它终止
编写事件驱动程序有两种方式:一是模拟一个事件环境;二是创建一个简单的GUI程序,该程序可利用操作系统和环境来生成事件。
事件捕获和处理的独立性是事件驱动编程的关键特性。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: