
1 deplivesb Sep 29, 2021 这和 typing 有什么关系么?除了标题我没看到任何 typing 而且你这个 文件 a import 文件 b,文件 b import 文件 a 。这个循环引用有什么问题么? |
2 ruanimal Sep 29, 2021 if typing.TYPE_CHECKING:from a import A |
3 plko345 Sep 29, 2021 via Android 我也有这个疑问 |
4 BBCCBB Sep 29, 2021 现在简单用字符串.. from a import A class B: def func(self, a: 'A') typing 用字符串包裹. |
5 qs Sep 29, 2021 |
6 qW7bo2FbzbC0 Sep 29, 2021 很久之前也遇到这个问题,后面改层级和归属解决了。在 go 里面也也遇到同样的问题 |
7 DaguguJ Sep 29, 2021 from import 会导致,局部 import 就不会导致了。感兴趣看看两者的区别。然后,出现这个问题应该是编码不规范,代码不应该这么写的。 |
8 15399905591 OP @BBCCBB 用字符串的话,pycharm 会报警告,不知道为什么 Unresolved reference 'SpecicalDetailValueObject' Inspection info: This inspection detects names that should resolve but don't. Due to dynamic dispatch and duck typing, this is possible in a limited but useful number of cases. Top-level and class-level items are supported better than instance items. |
9 15399905591 OP @qs 你这个应该是 3.7 的新特性, 我用的 3.6, 用不了 |
10 15399905591 OP @hjahgdthab750 你那个是因为模块层级有问题,破坏了依赖倒置原则。 但我的代码是同一级, 类似 ORM 的 外关联关系, 两个 model 是在同一级的不同文件下面。 |
11 15399905591 OP @DaguguJ 你这个应该是 python 2.x 的解决方式,python3.x 没用 |
12 15399905591 OP @zhangdeplives 兄弟,typing 是指参数类型提示, 另外,这个循环有没有问题,你可以自己去试试 |
13 BBCCBB Sep 29, 2021 > 用字符串的话,pycharm 会报警告,不知道为什么 他警告他的, 只要不报错, 能运行, 就 O 了. |
14 BBCCBB Sep 29, 2021 或者在这里不加 typing. |
15 15399905591 OP @BBCCBB 哈哈, 有一点代码洁癖, 看见提示就不爽 |
16 BBCCBB Sep 29, 2021 把警告关了 |
17 Trim21 Sep 29, 2021 via Android 你要首先用 2 楼的办法引入 A,然后用字符串,就不有警告了。 |
18 15399905591 OP @Trim21 2 楼的好像不行 |
19 houzhiqiang Sep 30, 2021 我也是用 2 楼的方法 |
20 vcfghtyjc Oct 12, 2021 @15399905591 补充一下二楼的方法 ``` if typing.TYPE_CHECKING: from a import A class B: def func(self, a: "A"): pass ``` |