2019.06.17 22:00+09:00
python3.8にmypyをインストール。まだmasterじゃないとインストールできない。
$ git clone --recurse-submodules https://github.com/python/mypy.git
$ cd mypy
$ python3.8 setup.py install
だがしかし、python3.8は from typing import TypedDict で、 mypyはまだ from typing_extensions import TypedDict でないとimportできない。
typeddicts1.py
from typing import TypedDict
class Book(TypedDict):
name: str
author: str
price: int
if __name__ == '__main__':
book1:Book = {'name': 'Spam', 'author': 'soseki', 'price': 300}
book2:Book = {'name': 'Spam', 'writer': 'ogai', 'price': 450}
print(book1)
print(book2)
$ python3.8 typeddicts1.py
{'name': 'Spam', 'author': 'soseki', 'price': 300}
{'name': 'Spam', 'writer': 'ogai', 'price': 450}
typeddicts2.py
from typing_extensions import TypedDict
class Book(TypedDict):
name: str
author: str
price: int
if __name__ == '__main__':
book1:Book = {'name': 'Spam', 'author': 'soseki', 'price': 300}
book2:Book = {'name': 'Spam', 'writer': 'ogai', 'price': 450}
print(book1)
print(book2)
$ mypy typeddicts2.py
typeddicts2.py:10: error: Extra key 'writer' for TypedDict "Book"