A circular dependency occurs when modules or components depend on one another directly or indirectly. During a unit-test run, Python may expose the cycle while instantiating interconnected classes. section 6.1.1
Breaking a class cycle
A visitor depends on Asset, which loads FundingDetails; FundingDetails refers to DepreciationStrategy and Asset, creating a cycle. Reduce the coupling by removing Asset’s direct reference to FundingDetails and FundingDetails’ direct reference to DepreciationStrategy. section 6.1.1




