dea*_*n44 14 python annotations python-3.x
以下dataclass:
from abc import ABC
from collections.abc import Mapping
from dataclasses import dataclass, field
@dataclass(eq=True, order=True, frozen=True)
class Expression(Node, ABC):
def node(self):
raise NotImplementedError
Run Code Online (Sandbox Code Playgroud)
用作基类:
@dataclass(eq=True, frozen=True)
class HashLiteral(Expression):
pairs: Mapping[Expression, Expression]
...
Run Code Online (Sandbox Code Playgroud)
Node 定义为:
@dataclass(eq=True, frozen=True)
class Node:
def __str__(self) -> str:
raise NotImplementedError
Run Code Online (Sandbox Code Playgroud)
尝试使用HashLiteral该类时出现错误:
pairs: Mapping[Expression, Expression]
TypeError: 'ABCMeta' object is not subscriptable
Run Code Online (Sandbox Code Playgroud)
我pairs上面的注释有什么问题?