如图,最后那个 Card 提示未定义,这有什么解决办法吗
1
ves OP |
2
ClericPy 2021-09-09 22:45:50 +08:00
加上引号
|
3
ipwx 2021-09-10 01:07:52 +08:00 2
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 |