Question about circular imports
Jean-Michel Pichavant
jeanmichel at sequans.com
Mon Feb 27 09:59:52 EST 2012
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
More information about the Python-list
mailing list