【发布时间】:2014-04-11 22:36:34
【问题描述】:
我最近重构了我的代码,将在多个类之间共享的输入验证方法放在它们自己的模块validate.py 中。其中一些验证方法会检查它们的输入是否是类的实例,例如 MyClass。因此validate.py 必须导入MyClass 所以它的方法is_MyClass 可以检查isinstance(input, MyClass) 是否。但是,我想使用MyClass 中的validate.py 中的一些验证方法来清理MyClass.my_method 的输入,所以MyClass 必须导入validate.py。
有件事告诉我,我只是随便将自己的方式重构为反模式。如果我正在尝试做的事情意味着循环依赖,那么我一定是做错了™。
但是,代码重用是个好主意。那么以这种方式共享验证方法的最佳做法是什么?
【问题讨论】:
标签: python validation anti-patterns