zlacker

[parent] [thread] 3 comments
1. welder+(OP)[view] [source] 2022-09-06 05:03:34
Yes, if you're accepting the type as a param or returning the type. It happens very frequently, and without moving those imports behind "if typing.TYPE_CHECKING", you constantly run into cyclic imports.

https://stackoverflow.com/questions/39740632/python-type-hin...

replies(1): >>heaven+CN
2. heaven+CN[view] [source] 2022-09-06 12:23:55
>>welder+(OP)
It happens very frequently if you are not very good at separating your data model from logic.
replies(1): >>welder+uU
◧◩
3. welder+uU[view] [source] [discussion] 2022-09-06 13:07:18
>>heaven+CN
Why would there exist a way in Python to conditionally import types, for the purpose of preventing cyclic imports, if cyclic imports weren't a problem?

Your comment makes it seem like you haven't experienced Python types enough, or you wouldn't think it was so easy.

replies(1): >>heaven+3Oj
◧◩◪
4. heaven+3Oj[view] [source] [discussion] 2022-09-12 12:37:01
>>welder+uU
> Your comment makes it seem like you haven't experienced Python types enough, or you wouldn't think it was so easy.

Oh trust me I did and I constantly slap on the wrists juniors who over-complicate their solutions to the problem :)

> Why would there exist a way in Python to conditionally import types, for the purpose of preventing cyclic imports, if cyclic imports weren't a problem?

Because it's easier to understand than the solution to cyclic imports without conditional imports.

[go to top]