Pythonic way to resolve circular import statements?

后端 未结 2 1463
花落未央
花落未央 2020-12-04 18:01

I just inherited some code which makes me uneasy: There is a testing library, full of classes corresponding to webpages on our site, and each webpage class has methods to a

2条回答
  •  无人及你
    2020-12-04 18:30

    Resolving these constructs usually involves techniques like Dependency Injection.

    It is, however, rather simple to fix this error:

    In calendarLib.py:

    import homePageLib
    
    class CalendarPage(object):
        def clickHomePageLink(self):
            [...]
            return homePageLib.HomePage()
    

    The code at module level is executed at import time. Using the from [...] import [...] syntax requires the module to be completely initialized to succeed.

    A simple import [...] does not, because no symbols are accessed, thus breaking the dependency chain.

提交回复
热议问题