Frank Millman wrote:
Hi all

I seem to have a recurring battle with circular imports, and I am trying to nail it once and for all.

Let me say at the outset that I don't think I can get rid of circular imports altogether. It is not uncommon for me to find that a method in Module A needs to access something in Module B, and a method in Module B needs to access something in Module A. I know that the standard advice is to reorganise the code to avoid this, and I try to do this where possible, but for now I would like to address the question of how to handle the situation if this is otherwise unavoidable.
Hi Frank,

If you consider it unavoidable you've already lost. There is no reliable solution to circular import except refactoring the code to place all common code elsewhere:

wavbase.py
wavread.py (import wavbase)
wavwrite.py (import wavbase)


Any code required by both waread and wavwrite would end up in wavbase.
Is there anything that prevent you from doing this ?

JM
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to