Python에서 중첩된 try/except 블록이 좋은 프로그래밍 방법입니까?

| | |

속성 호출을 통해 내부 사전에 대한 액세스 권한을 부여해야 하는 자체 컨테이너를 작성 중입니다. 컨테이너의 일반적인 사용은 다음과 같습니다.

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

이런 식으로 작성하는 것이 어리석은 일이라는 것을 압니다. 하지만 그것이 제가 제공해야 하는 기능입니다. 나는 이것을 다음과 같은 방식으로 구현하는 것에 대해 생각하고 있었다:

def __getattribute__(self, item): try: return object.__getattribute__(item) except AttributeError: try: return self.dict[item] except KeyError: print "객체에는 그러한 속성이 없습니다." 

내포된 try/except 블록이 좋은 방법인지 잘 모르겠습니다. 그래서 다른 방법은 hasattr()has_key():

def __getattribute__(self, item): if hasattr(self, item): 객체를 반환합니다. __getattribute__(item) else: if self.dict.has_key(item): return self.dict[item] else: raise AttributeError("일부 사용자 정의 오류") 

또는 하나를 사용하려면 그들 중 하나와 다음과 같은 하나의 try catch 블록:

def __getattribute__(self, item): if hasattr(self, item): return object.__getattribute__(item) else: try: return self. dict[item] 제외 KeyError: raise AttributeError("some Customized error") 

어떤 옵션이 가장 P 세련되고 우아한가요?

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