Python’da yuvalanmış try/except blokları iyi bir programlama uygulaması mıdır?

| | |

Öznitelik çağrılarıyla içerideki bir sözlüğe erişim vermesi gereken kendi kapsayıcımı yazıyorum. Kapsayıcının tipik kullanımı şu şekildedir:

dict_container = DictContainer() dict_container["foo"] = bar ... print dict_container.foo 

Böyle bir şey yazmanın aptalca olabileceğini biliyorum, ancak sağlamam gereken işlevsellik bu. Bunu şu şekilde uygulamayı düşünüyordum:

def __getattribute__(self, item): try: return object.__getattribute__(item) ancak AttributeError: try: return self.dict[item] KeyError hariç: print "Nesnenin böyle bir özelliği yok" 

İç içe try/except bloklarının iyi bir uygulama olup olmadığından emin değilim, bu nedenle başka bir yol < kullanmak olabilir code>hasattr() ve has_key():

def __getattribute__(self, item): if hasattr(self, item): nesneyi döndürür. __getattribute__(item) else: if self.dict.has_key(item): return self.dict[item] else: upgrade AttributeError("bazı özelleştirilmiş hata") 

Veya birini kullanmak için bunlardan biri ve bir tanesi aşağıdaki gibi yakalama bloğunu deneyin:

def __getattribute__(self, item): if hasattr(self, item): return object.__getattribute__(item) else: deneyin: self'e dönün. KeyError hariç dict[item]: AttributeError("bazı özelleştirilmiş hata") 

Hangi seçenek en çok P'dir itonik ve zarif?

Shop

Learn programming in R: courses

$

Best Python online courses for 2022

$

Best laptop for Fortnite

$

Best laptop for Excel

$

Best laptop for Solidworks

$

Best laptop for Roblox

$

Best computer for crypto mining

$

Best laptop for Sims 4

$

Latest questions

NUMPYNUMPY

psycopg2: insert multiple rows with one query

12 answers

NUMPYNUMPY

How to convert Nonetype to int or string?

12 answers

NUMPYNUMPY

How to specify multiple return types using type-hints

12 answers

NUMPYNUMPY

Javascript Error: IPython is not defined in JupyterLab

12 answers

News


Wiki

Python OpenCV | cv2.putText () method

numpy.arctan2 () in Python

Python | os.path.realpath () method

Python OpenCV | cv2.circle () method

Python OpenCV cv2.cvtColor () method

Python - Move item to the end of the list

time.perf_counter () function in Python

Check if one list is a subset of another in Python

Python os.path.join () method