I would like to know how to, instead of getting an error, return a False-like value when trying to access a list out of range, for example, or trying to grab a key from a dictionary that doesn't exist. Does anyone know of a method?
for a dictionary you can use a defaultdict
from the collections
module I.E:
from collections import defaultdict
my_dict = defaultdict(lambda: False)
my_dict['test'] # This will be False
You can read more about defaultdict
in the docs
For a list however it gets a bit more complicated, sublcassing list
and overriding the __getitem__
method to wrap the call in a try/except clause and return a different value:
class defaultlist(list):
def __getitem__(self, key):
try:
return super().__getitem__(key)
except IndexError:
return False
my_list = defaultlist()
my_list[10] # This will be False
Эта статья взята из Интернета, укажите источник при перепечатке.
Если есть какие-либо нарушения, пожалуйста, свяжитесь с[email protected] Удалить.
я говорю два предложения