from collections.abc import Sequence
from typing import Dict, List, Tuple, NewType
Sequence[Tuple[Tuple[str,int], Dict[str, str]]]
をデータ・タイプとして定義したいですが、
例:
def fun( x : Sequence[Tuple[Tuple[str,int], Dict[str, str]]]) -> None:
return
下記のようなエラーが出ました。
TypeError: 'ABCMeta' object is not subscriptable
Sequence(*args, **kwargs)
All the operations on a read-only sequence.
Concrete subclasses must override new or init, getitem, and len.
原因は何でしょうか❓
せめて再現するコードを載せてください。
>>> from collections.abc import Sequence
>>> from typing import Dict, List, Tuple, NewType
>>> def fun( x : Sequence[Tuple[Tuple[str,int], Dict[str, str]]]) -> None:
... return
>>>
それはそれとして、質問にめちゃくちゃ目立つように書かれている
All the operations on a read-only sequence.
Concrete subclasses must override new or init, getitem, and len.
がたぶん答えです。「2つめの命令形の文に従ってください」が回答の筆頭候補です。
すみません「せめて再現するコードを載せてください」と書きましたがどうもPythonのバージョンで挙動が異なるようです。Pythonのバージョンを明記してください。
quickquip さん
いつもお世話になっております。
お返事ありがとうございます。
コード:
!python -V
from typing import Dict, List, Tuple,NewType
from collections.abc import Sequence
def broadcast_message( message: str, servers: Sequence[Tuple[Tuple[str,int], Dict[str, str]]]) -> None:
return
<出力>
Python 3.7.15
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-1-b2c7fd54b69f> in <module>
3 from collections.abc import Sequence
4
----> 5 def broadcast_message( message: str, servers: Sequence[Tuple[Tuple[str,int], Dict[str, str]]]) -> None:
6 return
TypeError: 'ABCMeta' object is not subscriptable
回答1件
あなたの回答
tips
プレビュー