python tips(3)

來源:互聯網
上載者:User

1. 使用pywinauto自動化架構實現切換程式。

import win32com.clientfrom pywinauto import Applicationfrom time import sleep, timeapps = {'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 number3 is a prime number4 equals 2 x 24 is a prime number5 is a prime number6 equals 2 x 36 equals 3 x 26 is a prime number7 is a prime number8 equals 2 x 48 equals 4 x 28 is a prime number9 equals 3 x 39 is a prime number>>> 

5. ''' ''' 包含起來的為docstring。可以用print列印出來。如下。

def M():    '''test docstring'''    returnprint 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*ntwice = make_repeater(2)print twice('word')print twice(5)>>> wordword10>>> 

這裡使用了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中的小錯誤:匯出類和基類取相同的名字就可以使用基類的私人變數。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.