4
私は、非Pythonユーザーが使用するいくつかのスクリプトを書いています。辞書があるConfigクラスがあり、KeyErrorのカスタム例外を発生させたいと考えています。辞書の値をチェックする際に例外を発生させるメソッドを書く以外に、これを行うためのエレガントな方法がありますか?ここで カスタム辞書を呼び出す方法KeyErrorメッセージ
class ConfigError(Exception): pass
class Config:
def __init__(self):
self.cars = {'BMW': 'M5', 'Honda': 'Civic'}
def get_car(self, name):
try:
return self.cars[name]
except KeyError, e:
raise ConfigError("Car %s doesn't exist!!!" % name)
conf = Config()
print 'Car: %s' % conf.cars['BMW']
print 'Car: %s' % conf.cars['Mercedes']
は出力です:ここで
は一例です私は上記Config.get_car()などのメソッドを記述し、カスタム例外を発生させることができます知っている
Car: M5
Traceback (most recent call last):
File "test.py", line 17, in ?
print 'Car: %s ' % conf.cars['Mercedes']
KeyError: 'Mercedes'
が、私は思いますConfig.carsディクショナリに直接アクセスしようとしたときにカスタム例外を送出できるようにします。私は実際にはより多くの辞書が設定に含まれているので、そうしたいと思いますが、辞書の1つに対してカスタム例外を発生させるだけで、データがどのように一貫性のある(辞書として)かを維持したいと思います。
注:これはPython 2.4.4を使用しています。