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


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

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