原创 python之異常的檢測和處理

當代碼出現問題時,系統會異常錯誤。我們現在想實現的是在代碼出現問題的時候獲取到異常信息,並做處理。 try: 監控異常 except exception: 處理異常 finally: 正常運行 理論不大好懂,我們

原创 python之文件的常用操作

readline()可以讀取一行內容 readlines()可以讀取多行內容,可以與for循環聯用。 tell()輸出目前文件指針的位置 read()讀取文件所有內容 read(x)讀取x個字符 seek(a)偏移的位置,從開頭開始計數

原创 python之文件read,write

計算機操作系統中,我們在對文件進行加工之前,需要先將文件打開,再進行讀r、寫w操作,操作完成後,還需要對文件進行關閉。 #1 f1 = open('text.txt', 'w') #打開文件text.txt f1.write('he

原创 python之__call__

往常中,我們調用函數時 “函數名(參數)” ;我們需要調用類的方法時,是通過類的實例調用的 “類名.方法名(canshu )”。現在我們想實現 在調用類方法時,可以 “實例名(參數)”,那麼能實現嗎?__call__方法可以幫我們實現這一

原创 python之__slots__

因爲python是動態語言,在使用時可以動態的添加屬性。現在想要限制類的屬性,__slots__可以實現這個效果。 先看代碼: class Person(object): __slots__ = ('name', 'gender

原创 python之編寫帶參數decorator

在學習帶參數的decorator之前,我們先回顧下無參數的decorator。以@log裝飾器爲例講解: 無參數decorator def new_fn(f): def fn(x): print 'call '+

原创 python之完善decorator

裝飾器可以給函數動態添加功能,但是裝飾器後,再輸出原函數的函數名的話,會發現輸出的不是原函數的函數名了。 def new_fn(text): def decorator_new_fn(f): def fn(x):

原创 python之*args,**kw

python中函數的參數分爲普通參數、默認參數、非關鍵字參數、關鍵字參數,下面我們就具體討論下各個參數類型。 比如: def func(a, b, c = 0, *args, **kw): print 'a = ' + str(

原创 python之decorator裝飾器

我們在運行一個函數時,想要動態地給這個函數添加一些功能,又不想在原函數上進行更改,那怎麼做呢? 比如我們想在調用函數時輸出log語句,我們首先想到的是在函數內添加print語句,這個pass掉,不符合前提條件。我們之前還學過高階函數,因爲

原创 python之map()函數

python中有map函數,map函數是一個高階函數,接收一個函數作爲參數,還有一個list。其作用是高階函數對list中的每個元素進行加工,然後生成一個新的list,並將其返回。 def f(x): return x*x pr

原创 計算機考研-三戰

18年畢業的我,大四那年考研華東師範,專業課好低42分。一戰原因是 專業課沒有按照學長們相傳的指定書目複習; 專業課按照王道複習的,感覺自己當時學的還行,後來總結經驗時才感覺專業課準備的也不是很好。 一戰那一年,我感覺活了20多年,這輩子

原创 python之__len__()

在List一節中,我們要求List列表中有多少個元素時,直接用len(L)即可獲得列表元素個數。那現在我想求類中實例的個數,用len()函數沒有效果,那怎麼辦呢?這就需要我們今天即將介紹的__len__()特殊方法來解決了。 下面以一個例

原创 python之有理數運算Rational類

python中可以做的數學運算,僅侷限在了基本數據類型int、float。因爲我們前面學過了特殊方法,所以我們現在也可以進行有理數運算、矩陣運算,今天我們就先講解有理數運算,矩陣運算與有理數運算方法基本一樣,都要用到特殊方法進行定義運算過

原创 python之類型轉換

普通的數據可以強制轉換數據類型,比如 >>>a = 3.2 >>>int(a) 3 >>>b = 8 >>>float(b) 8.0 那麼分數能進行數據類型轉換嗎?可以的。因爲我們學過python中的特殊方法__xx__, 在使用pyt

原创 python之獲取對象信息

我們之前有學過isinstance(),該函數是判斷某實例是否是某類型的實例對象。現在我們想獲取一個實例對象的更多信息,怎麼獲取呢?接下來我們將學習dir(), type(), getattr(), setattr(),來獲取實例的更多信