系統的魔術方法:系統的魔術方法特別多,但是也都特別容易懂,簡單的講就是對系統的內建函式進行重寫,你需要什麼效果就重寫成什麼樣,
比如說len()方法針對的物件本來沒有自定義類的物件,但是當你重寫了__len()__這個魔術方法時候,就可以對你需要的進行計算了,這個需要積累
這裡給個例子吧
1魔術方法舉例class
dog:
2def
__init__
(self, l):
3 self.l =
4self.l.extend(l)
5def
__len__
(self):
6return
len(self.l)78
9 l1 = [1, 2, 3, 4, 5, 6, 7, 8, 9]
10 d1 =dog(l1)
11print(len(d1))
異常處理:try - except語句
1異常處理try:
2 【**塊a】 #
可能會出錯誤的** 異常檢測
3except exception1[ as e]: #
異常處理
4 【**塊1】 #
異常處理**
5except exception2[ as e]: #
異常處理
6 【**塊2】 #
異常處理**
7....
8except exceptionn[ as e]: #
異常處理
9 【**塊n】 #
異常處理**
10 [else:] #
可選,如果沒有引發異常會執行
11處理語句
12 [finally:] #
無論如何都要執行的語句
13處理語句
14 【後續語句】
丟擲異常:手動丟擲乙個異常,無論哪種異常都可以帶乙個引數字串,如果沒有帶引數,則會把異常原樣丟擲
1丟擲異常try:
2raise zerodivisionerror('
除0錯誤')
3#raise zerodivisionerror #如果不想獲取錯誤資訊,可以不帶引數
4except
zerodivisionerror as e:
5print(e) #
除0錯誤
assert 斷言:
asser 條件 [,異常描述字串]
執行流程:如果條件為假,則丟擲assertionerror,條件為真,就當assert不存在
作用:對於可能出問題的**,加上斷言,方便問題排查
1assert斷言print('
start')
2 num = int(input('
請輸入乙個1~9的整數:'))
3assert 0 '
num不在1~9'4
print('
end')
自定義異常:如果說系統異常型別已經無法滿足自己,那麼就可以寫個自定義異常
1自定義異常class customerror(baseexception): #
繼承baseexception
2def
__init__
(self,msg):
3 super().__init__() #
呼叫父類初始化
4 self.msg =msg56
#重寫__str__,輸出異常資訊
7def
__str__
(self):
8return
self.msg910
#3.自定義異常處理方法
11def
handle_exception(self):
12print('
異常處理')
1314
try:
15raise customerror('
自定義異常')
16except
customerror as e:
17print(e)
Python零基礎學習筆記(三十五) 記憶體修改
今天利用這個小功能做了個植物大戰殭屍的外掛程式,哈哈哈 等以後學了gui程式設計的時候做成圖形化介面 程序模組 import win32process 系統import win32api import win32con import win32gui import ctypes 獲取最高許可權,位運...
python程式設計基礎之三十一
物件導向 一開始接觸物件導向其實感覺不好用,但是對於一些複雜的問題,使用物件導向其實更加容易,邏輯不容易混亂 它的核心是 類 和 物件 類 對一系列事物的抽象概念,可以視為一張圖紙,物件 就是對類這種抽象概念例項化出乙個具體的東西,也可以理解成按照圖紙說明製造的乙個實物,不同實物之間肯定會有不一樣,...
LeetCode第三十五題 Python實現
title leetcode no.35 categories tags 給定乙個排序陣列和乙個目標值,在陣列中找到目標值,並返回其索引。如果目標值不存在於陣列中,返回它將會被按順序插入的位置。你可以假設陣列中無重複元素。示例 1 輸入 1,3,5,6 5 輸出 2 示例 2 輸入 1,3,5,6 ...