這是我的**:
class persondata ():
def __init__(self, age, spouse = none, children = 0):
self.age = age
self.children = children
self.spouse = spouse
if self.spouse == none:
del self.spouse
print "a %s year old person" % str(self.age)
def marries(self, name):
if self.spouse == none:
self.spouse = name
else:
try:
self.marries(name)
except exception as detail:
print "spouse exists:", self.spouse
def divorces(self):
if self.spouse == none:
raise attributeerror, " not married, divorce impossible"
我想做的是:
def divorces(self):
if self.spouse != none: ## thats mean the person has a spouse,
self.spouse = none ## i think that should remove the spouse, right?
如果我們再次提出離婚,這應該是例外,因為配偶已被移走.
假設我的:
person = persondata(30, 'sue')
person.spouse將是sue,如果我呼叫person.marries(『anna』),則會引發異常,現在,如果我呼叫person.divorce(),它將刪除配偶(『sue』).我遇到的問題是,當我打**給person.divorce()時,它應該引發異常,說「不存在配偶」,而我無法做到這一點,我們將不勝感激.
python 異常錯誤
錯誤的型別有很多種,例如nameerror,ioerror等,可以用exception來囊括所有的錯誤型別。result用來記錄錯誤的具體資訊。注意 如果某一行報錯,下面的 是不會被執行的。try print num except exception as result print 產生錯誤了,錯誤...
python 錯誤與異常
錯誤在執行前修改,邏輯錯誤無法修改 執行時,異常產生,檢查到錯誤且直譯器認為是異常,丟擲異常 異常處理,截獲異常,忽略或者終止程式處理異常 try try suite except exception e exception blocktry aexcept nameerror,e print ca...
python錯誤和異常
1 語法錯誤 syntax errors 語法錯誤,也就是解析時錯誤。當我們寫出不符合python語法 時,在解析時會報syntaxerror,並且會顯示出錯的那一行,並用小箭頭知名指明最早探測到錯誤的位置。如 while ture file line 1 while ture syntaxerro...