1. 使用pywinauto自动化框架实现切换程序。
import win32com.client from pywinauto import Application from time import sleep, time apps = {'iexplore':'IEFrame', 'notepad':'Notepad'} lst = [] for key:value in apps.items(): key = key + '_' key = Application.Connect(class_name = value) lst.append(key[value]) #print key #print key(value) for i in range(2): for obj in lst: obj.TypeKeys("{TAB}") sleep(.8)
2. python中当使用自身时:__name__ == __main__
被调用时:__name__ == 文件名(不含后缀名)
3. python多重赋值时先把右边都算出后再进行赋值。
4. python中的for循环可以带一个else子句,当循环正常结束时执行其内容,但如果是用break语句跳出的则不执行其内容。如下程序输出了10以内的素数。
for n in range(2, 10): for x in range(2, n): if n % x == 0: print n, 'equals', x, 'x', n/x else: print n, 'is a prime number'
输出结果为:
>>> 2 is a prime number 3 is a prime number 4 equals 2 x 2 4 is a prime number 5 is a prime number 6 equals 2 x 3 6 equals 3 x 2 6 is a prime number 7 is a prime number 8 equals 2 x 4 8 equals 4 x 2 8 is a prime number 9 equals 3 x 3 9 is a prime number >>>
5. ''' ''' 包含起来的为docstring。可以用print打印出来。如下。
def M(): '''test docstring''' return print M.__doc__
输出结果为:
>>> test docstring >>>
6. python函数若形参表中有一个形为**name的形参,在调用时这个形参可以接收一个字典,字典中包含所有不与任何形参匹配的关键字参数,形参表中还可以使用一个特殊的形为*name的形参,它将接受所有不能匹配的位置参数组成的一个序表,*name只能在**name前出现(*name类似于*args,**name类似于**kw),在任意个数形参前可以由0到多个正常的参数。
7. Lambda语句被用来创建新的函数对象,并且在运行时返回它们。如下。
def make_repeater(n): return lambda s:s*n twice = make_repeater(2) print twice('word') print twice(5) >>> wordword 10 >>>
这里使用了make_repeater函数在运行时创建新的函数对象,并且返回它。lambda语句用来创建函数对象,本质上,lambda需要一个参数,后面仅跟单个表达式作为函数体,而表达式的值被这个新建的函数返回。
注意:即使是print语句也不能用在lambda形式中,只能使用表达式。
8. 列表 list []
序表 tuple
元组 () ->一旦生成,不可改变
字典 {}
python中不同类型的对象比较目前也是合法的,结果是确定的但是没有什么意义,不同类型是按类型的名字排序的,所以,列表(list)总是小于字符串(string),字符串总是小于序表(tuple),等等。但是程序中不能依赖这样的比较规则,语言实现可能会改变,不同的数值类型可以按数值来比较,所以0等于0.0,等等。
9. 使用"from 包 import 项"这样的格式时,导入的项可以是包的一个子模块(或子包),也可以是包内定义的其它名字如函数、类、变量。导入语句首先查找包内是否定义了所需的项,如果没有则假定它是一个模块然后调入,如果找不到,结果引发ImportError。
相反的,当使用"import item.subitem.subsubitem"这样的格式时,除最后一项可以是包也可以是模块,不允许是前面一项内部定义的类、函数或变量。
10. pickle是保存python对象并被其它程序或同一程序以后再运行时调用的标准方法,这种做法的专用术语叫做“持久对象”。
11. python中标准例外名是内置的标识符(不是保留关键字)。
12. python中try (raise) except finally与C#中try (throw) catch finally有区别。
python中finally子句不论try子句是否发生例外都会执行,例外发生时,先执行finally子句然后重新抛出该例外,当try语句用break或return语句退出时也将执行finally子句。
要注意的是,try语句不能同时拥有except子句和finally子句,需要的话可以嵌套。
13. python中的小错误:导出类和基类取相同的名字就可以使用基类的私有变量。