官术网_书友最值得收藏!

Resolving attribute errors raised due to cyclic dependencies

There are two common ways to address the attribute error. The first one is usually considered the best. This method is to break the cycle by taking some of the code from one of the modules and moving it into a third module, which both the other modules can import without causing a cycle. In the following example, if we move the A class into its own module, there would be no cycle and all would be well:

The other way to address this problem is to move the import statement that causes the cycle, as shown in the following screenshot:

If we move the import statement down, as shown in the preceding example, until it's below all the variable definitions that are needed by the other modules in this cycle, the module will be initialized enough when it's imported by the other modules. Python will still come back and finish the initialization later.

主站蜘蛛池模板: 防城港市| 垫江县| 鄂托克旗| 泰安市| 耿马| 子洲县| 祁东县| 青冈县| 玉溪市| 新乡县| 黔南| 兴宁市| 磴口县| 宾阳县| 北海市| 临城县| 长乐市| 毕节市| 雷山县| 寻甸| 乐东| 昌吉市| 修武县| 阳东县| 荣成市| 久治县| 廊坊市| 思茅市| 慈溪市| 渭源县| 东乡县| 泌阳县| 桓仁| 垣曲县| 仪陇县| 新宾| 贞丰县| 东山县| 青河县| 肃北| 康平县|