设为首页 收藏本站
查看: 713|回复: 0

[经验分享] python tips(3)

[复制链接]

尚未签到

发表于 2017-4-23 06:03:33 | 显示全部楼层 |阅读模式
  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中的小错误:导出类和基类取相同的名字就可以使用基类的私有变量。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-367902-1-1.html 上篇帖子: python流程控制 下篇帖子: python与RPC
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表