首页 > 编程知识 正文

python类,qpython

时间:2023-05-03 16:04:56 阅读:25103 作者:1613

正在编写供非python用户使用的脚本。 有包含词典的Config类。 我想让KeyError发生自定义异常。 除了在检查词典值时引发异常之外,还有其他优雅的方法吗?

这是一个例子:

类配置器(Exception ) : pass

class Config:

def __init__(self ) :

self.cars={'BMW': 'M5 ',' Honda': 'Civic'}

defget_car(self,name ) :

try:

return self.cars[name]

Except密钥错误,e:

raiseconfigerror (' car % s doesn ' t exist! “% name”

conf=Config ()

print ' car : % s ' % conf.cars [ ' BMW ' ]

print ' car : % s ' % conf.cars [ ' Mercedes ' ]

这是输出:

Car: M5

跟踪后退(mostrecentcalllast ) :

File 'test.py ',line 17,in?

print ' car : % s ' % conf.cars [ ' Mercedes ' ]

KeyError: 'Mercedes '

我知道上面的Config.get_car ) )这样的方法,可以引起自定义异常,但我希望在尝试直接访问Config.cars词典时可以引起自定义异常这是因为配置中实际上有更多的词典,但只在一个词典中引起自定义异常,希望保持数据访问的一致性。

注意:这是使用Python 2.4.4

解决方法:

考虑这样做。

类配置(dict ) :

def __getitem__(self,key ) :

try:

返回用户(myconfig dict,self )._ _ getitem _ _ (key ) ) ) ) ) ) 65

Except密钥错误as e :

raisemyconfigerror(e.message )。

这样的事情可能会让你在自己的扩展异常中包装每个访问。

标签: python、dictionary、exception-handling、python-2-4

资料来源: https://codeday.me/bug/2019 06 21/1252798.html

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。