Python에서 순환 가져오기를 피하는 방법은 무엇입니까?

|

파이썬의 순환 가져오기 문제가 이전에 여러 번 제기되었다는 것을 알고 있으며 이러한 토론을 읽었습니다. 이 토론에서 반복적으로 나오는 의견은 순환 가져오기는 잘못된 디자인의 표시이며 순환 가져오기를 방지하려면 코드를 재구성해야 한다는 것입니다.

누가 순환 가져오기를 피하는 방법을 알려줄 수 있습니까? 이 상황에서?: 두 개의 클래스가 있고 각 클래스에 다른 클래스의 인스턴스를 가져와서 해당 클래스의 인스턴스를 반환하는 생성자(메서드)를 갖고 싶습니다.

좀 더 구체적으로 말하자면, 하나의 클래스는 변경 가능하고 하나는 변경할 수 없습니다. 해싱, 비교 등을 위해서는 변경할 수 없는 클래스가 필요합니다. 변경 가능한 클래스도 작업을 수행하는 데 필요합니다. 이것은 세트 및 frozenset 또는 목록 및 튜플과 유사합니다.

두 클래스 정의를 동일한 모듈에 둘 수 있습니다. 다른 제안 사항이 있습니까?

장난감의 예로는 속성이 목록인 클래스 A와 튜플인 속성이 있는 클래스 B가 있습니다. 그런 다음 클래스 A에는 클래스 B의 인스턴스를 사용하고 클래스 A의 인스턴스를 반환하는(튜플을 목록으로 변환하여) 메서드가 있고 유사하게 클래스 B에는 클래스 A의 인스턴스를 사용하고 클래스 B의 인스턴스를 반환하는 메서드가 있습니다. (목록을 튜플로 변환하여).

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