zlacker

[parent] [thread] 4 comments
1. ttymck+(OP)[view] [source] 2022-09-06 01:50:29
Why is this a problem? When would you reference the type but not actually need the type? If you're returning the type from some method in your API, but not instantiating it there?
replies(1): >>welder+Sl
2. welder+Sl[view] [source] 2022-09-06 05:03:34
>>ttymck+(OP)
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+u91
◧◩
3. heaven+u91[view] [source] [discussion] 2022-09-06 12:23:55
>>welder+Sl
It happens very frequently if you are not very good at separating your data model from logic.
replies(1): >>welder+mg1
◧◩◪
4. welder+mg1[view] [source] [discussion] 2022-09-06 13:07:18
>>heaven+u91
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+V9k
◧◩◪◨
5. heaven+V9k[view] [source] [discussion] 2022-09-12 12:37:01
>>welder+mg1
> 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]