例如,我想创建一个类,该类可以在有或没有初始化变量的情况下执行不同的操作,但我想保持它的灵活性,这样,如果在没有该参数的情况下创建该类,则可以在以后使用方法添加该类。我有:
class Kickass(object):
def __init__(self, website=None)
if website:
self.website = website
def kick_butt(self):
# Can do stuff even if website == None
return stuff
def web_scrape(self, site=None):
if site:
try:
self.website == None
except ValueError:
print('Class instance already has a website!')
# Do operations with method's argument
if not site:
if self.website == None:
raise ValueError('Neither method nor instance have defined a website!')
else:
# Do operations with instance's variable
我在上课和处理异常方面仍然很糟糕。提前感谢您的投入
除非行为确实异常,否则不应抛出期望在你的情况下,似乎你想检查一个案例,并在此基础上改变你的行为。那就检查一下
您的try/except没有像您期望的那样工作的原因是try/except没有像if/else那样工作
相反,try/except将首先尝试在try块中运行代码。如果代码运行正常,那么它将跳过EXPECT并继续。但是如果代码抛出并
Exception
,那么它将运行一个except块,捕获该特定异常您的try块如下所示:
现在,如果self.website为None,则try块中的代码解析为True。这不是异常,因此不会执行except块。如果self.website不是none,则此块将解析为False,这也不是异常,因此except块将不会运行
现在,如果您的try块如下所示:
try中的代码将抛出
TypeError: object of type 'NoneType' has no len()
所以如果你跟在后面
将执行except块
您可以使用try/except来处理代码抛出的异常(通常在运行时数据与预期数据不同时)。使用if/else指定正常操作情况下的意外事件
相关问题 更多 >
编程相关推荐