python 面型物件(2) 錯誤異常

2021-08-20 11:47:56 字數 2231 閱讀 1994

__private_attrs:兩個下劃線開頭,宣告該屬性為私有,不能在類地外部被使用或直接訪問。在類內部的方法中使用時 self.__private_attrs。

在類地內部,使用 def 關鍵字來定義乙個方法,與一般函式定義不同,類方法必須包含引數 self,且為第乙個引數,self 代表的是類的例項。

self 的名字並不是規定死的,也可以使用 this,但是最好還是按照約定是用 self。

即便python程式的語法是正確的,在執行它的時候,也有可能發生錯誤。執行期檢測到的錯誤被稱為異常。

大多數的異常都不會被程式處理,都以錯誤資訊的形式展現在這裡:

異常以不同的型別出現,這些型別都作為資訊的一部分列印出來: 型別有 zerodivisionerror,nameerror 和 typeerror。

錯誤資訊的前面部分顯示了異常發生的上下文,並以呼叫棧的形式顯示具體資訊。

讓使用者輸入乙個合法的整數,但是允許使用者中斷這個程式(使用 control-c 或者作業系統提供的方法)。使用者中斷的資訊會引發乙個 keyboardinterrupt 異常。

try語句按照如下方式工作;

乙個 try 語句可能包含多個except子句,分別來處理不同的特定的異常。最多只有乙個分支會被執行。

處理程式將只針對對應的try子句中的異常進行處理,而不是其他的 try 的處理程式中的異常。

try except 語句還有乙個可選的else子句,如果使用這個子句,那麼必須放在所有的except子句之後。這個子句將在try子句沒有發生任何異常的時候執行。

例如:

for

arg

insys

.argv[1

:]:try:f

=open

(arg

,'r'

)except

ioerror

:print

('cannot open'

,arg

)else

:print

(arg

,'has'

,len(f

.readlines

()),

'lines')f

.close

()

使用 else 子句比把所有的語句都放在 try 子句裡面要好,這樣可以避免一些意想不到的、而except又沒有捕獲的異常。

異常處理並不僅僅處理那些直接發生在try子句中的異常,而且還能處理子句中呼叫的函式(甚至間接呼叫的函式)裡丟擲的異常。

例如:

>>>

defthis_fails

():x =1

/0>>>

try:

this_fails

()except

zerodivisionerror

aserr

:print

('handling run-time error:'

,err

)handling

run-

time error

:int

division

ormodulo

byzero

python 使用 raise 語句丟擲乙個指定的異常。例如:

>>>

raise

nameerror

('hithere'

)traceback

(most recent call

last

):file"",

line 1,

in?nameerror

:hithere

raise 唯一的乙個引數指定了要被丟擲的異常。它必須是乙個異常的例項或者是異常的類(也就是 exception 的子類)。

如果你只想知道這是否丟擲了乙個異常,並不想去處理它,那麼乙個簡單的 raise 語句就可以再次把它丟擲。

>>>

try:

raise

nameerror

('hithere'

)except

nameerror

:print

('an exception flew by!'

)raise

anexception flew by!

traceback

(most recent call

last

):file"",

line 2,

in?nameerror

:hithere

面型物件2

abstract 抽象類 通過抽象類可以避免子類的隨意設計 有抽象方法的類就只能定義抽象方法 抽象類不能實列化,不能通過new關鍵字來例項化抽象類 抽象類可以包含屬性,方法,構造器,但是構造方法不能通過new實列,自能被子類來呼叫 抽象類只能用來繼承 抽象類方法必須被子類實現 public abst...

python 異常錯誤

錯誤的型別有很多種,例如nameerror,ioerror等,可以用exception來囊括所有的錯誤型別。result用來記錄錯誤的具體資訊。注意 如果某一行報錯,下面的 是不會被執行的。try print num except exception as result print 產生錯誤了,錯誤...

異常(錯誤)也是物件哦

python3中異常 錯誤 捕獲 as 關鍵字的作用 a as b 意思是將a物件重新命名為b raise 用於生成乙個錯誤 raise someerror someerror will be raised 錯誤的捕獲 deffunny division1 anumber try try語句用於放置...