2019年8月13日火曜日

開発環境

Head First はじめてのプログラミング ―頭とからだで覚えるPythonプログラミング入門 (Eric Freeman(著)、嶋田 健志(監修)、木下 哲也(翻訳)、株式会社オライリー・ジャパン)を12章(オブジェクト指向プログラミング - オブジェクト村への旅)の自分で考えてみよう(533ページ)の解答を求めてみる。

コード

Python 3

#!/usr/bin/env python3
from unittest import TestCase, main
from typing import List


class DogTest(TestCase):
    def setUp(self) -> None:
        pass

    def tearDown(self) -> None:
        pass

    def test_human_years(self) -> None:
        codie: Dog = Dog('Codie', 12, 38)
        jackson: Dog = Dog('Jackson', 9, 12)
        human_years_list: List[int] = [84, 63]
        for dog, human_years in zip([codie, jackson], human_years_list):
            self.assertEqual(dog.human_years(), human_years)


class Dog:
    def __init__(self, name: str, age: float, weight: int):
        self.name: str = name
        self.age: float = age
        self.weight: int = weight

    def human_years(self) -> int:
        return int(self.age) * 7


if __name__ == '__main__':
    main()

入出力結果(Bash、cmd.exe(コマンドプロンプト)、Terminal、Jupyter(IPython))

$ ./sample1.py
E
======================================================================
ERROR: test_human_years (__main__.DogTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "./sample1.py", line 13, in test_human_years
    codie: Dog = Dog('Codie', 12, 38)
NameError: name 'Dog' is not defined

----------------------------------------------------------------------
Ran 1 test in 0.000s

FAILED (errors=1)
$ mypy sample1.py
sample1.py:15: error: Bracketed expression "[...]" is not valid as a type
sample1.py:15: note: Did you mean "List[...]"?
$ mypy sample1.py
$ ./sample1.py
.
----------------------------------------------------------------------
Ran 1 test in 0.000s

OK
$ 

0 コメント:

コメントを投稿