
如图,最后那个 Card 提示未定义,这有什么解决办法吗

1 ves OP |
2 ClericPy 2021-09-09 22:45:50 +08:00 加上引号 |
3 ipwx 2021-09-10 01:07:52 +08:00 def create_from_shortstr(cls, ss: str) -> 'Card': 不过这种我建议不要加 -> Card,因为其实是 classmethod 返回的是 cls()。也不要用 Generic[T],这样很麻烦。 |
4 Trim21 2021-09-10 07:55:20 +08:00 这里不应该用 Generic[T],可以月 TypeVar |
5 Trim21 2021-09-10 07:57:52 +08:00 你这个方法在类型上返回的也不是 Card 。如果 Card 是 List[str],那你这个方法的返回值就是 str |
7 Acebiu 2021-09-10 08:41:59 +08:00 如果不需要兼容 3.7 以下的版本的话也可以使用 ```python from __future__ import annotations ``` https://docs.python.org/3/library/__future__.html |
8 popil1987 2021-09-10 08:44:41 +08:00 可以把 create_from_shortstr 单独作为一个“工厂函数”,让它: 返回 Card 类本身 返回 Card 对象,根据传入参数 返回 Card 类,使用 Type 对类进行构造 |
9 2i2Re2PLMaDnghL 2021-09-10 09:38:22 +08:00 |
10 ves OP |