这是我的代码:
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
如果我调用 person.marries('Anna')
,那么它将是 Sue
。如果我调用 person.divorce()
,它将删除配偶 ('Sue'
)。我现在遇到的问题是,当我调用 person.divorce()
时,它应该引发一个异常,指出 "没有配偶存在",但我无法做到这一点。任何帮助都将不胜感激。
我的意图是:
def divorces(self):
if self.spouse != None: 这意味着这个人有配偶,
self.spouse = None 我认为这应该删除配偶,对吗?
##如果我们再次调用离婚,这里应该出现异常,因为配偶已被删除。
- MiMA