Return to Video

02-18 Data Invariants

  • 0:00 - 0:08
    すべてのバグをカバーするアサーションを書くのは
    とても大変なことだと分かりました
  • 0:08 - 0:13
    しかし できるだけ多くのバグを検出する
    アサーションを書かなければなりません
  • 0:13 - 0:16
    これはデバッグにとても役立つことです
  • 0:16 - 0:19
    アサーションは自動化されているので
  • 0:19 - 0:24
    すべての関数の実行を
    一度にチェックすることができます
  • 0:24 - 0:29
    また一度に大半のデータのチェックを
    自動的に行うこともできます
  • 0:29 - 0:34
    では大半のデータとはどういう意味でしょう?
    例を挙げて解説しましょう
  • 0:34 - 0:37
    Timeクラスを実行すると仮定します
  • 0:37 - 0:42
    Timeは時間と分と秒からなります
    Timeオブジェクトに矛盾があるかどうか
  • 0:42 - 0:46
    自動でチェックするアサーションを使用します
  • 0:46 - 0:50
    時間が正しい長さかどうか
    分が正しい長さかどうか
  • 0:50 - 0:52
    秒が正しい長さかどうかということです
  • 0:52 - 0:57
    これがTimeクラスです
    hours、minutes、secondsの3つの引数を使う
  • 0:57 - 1:00
    イニシャライザまたはコンストラクタから始めます
  • 1:00 - 1:05
    それぞれのデフォルト値は0です
    各属性をTimeオブジェクト内に
  • 1:05 - 1:09
    hours、minutes、secondsと設定します
  • 1:09 - 1:13
    これが内部属性hours、minutes、secondsに
    アクセスできる
  • 1:13 - 1:15
    いくつかのインスペクタ手法です
  • 1:15 - 1:20
    hours、minutes、secondsを与える
    インスペクタ手法を加えたあと
  • 1:20 - 1:23
    Timeオブジェクトを出力する方法が必要になります
  • 1:23 - 1:30
    そのためにPythonが表現方法の_repr_と呼ばれる
    特別な方法を提供しています
  • 1:30 - 1:35
    2つのアンダースコアを前後につけた
    特殊メソッドです
  • 1:35 - 1:40
    あるクラスのオブジェクトを出力する時は
    いつでもこのメソッドが呼び出され
  • 1:40 - 1:44
    オブジェクトの文字列の表現を繰り返します
  • 1:44 - 1:50
    何をするものでしょう?
    文字列フォーマットメソッドをここで使用しています
  • 1:50 - 1:55
    これは たくさんの引数のフォーマットをとります
    この引数が文字列のフォーマット仕様に与えられます
  • 1:55 - 2:02
    たとえば2dは引数の数を2桁で出力します
  • 2:02 - 2:07
    self.minutesも2桁です
    self.secondsも2桁です
  • 2:07 - 2:09
    フォーマットはまだ完璧ではありません
  • 2:09 - 2:11
    1桁の数字には頭にゼロをつけます
  • 2:11 - 2:16
    そしてコロンで区切った
    hours、minutes、secondsが必要です
  • 2:16 - 2:22
    ここに文字列があります
    ゼロ付きの2桁のhoursとゼロ付きの2桁のminutes
  • 2:22 - 2:25
    ゼロ付きの2桁のsecondsです
  • 2:25 - 2:27
    これがどのように機能するか試してみましょう
  • 2:27 - 2:32
    ここにある13 hoursと0 minutesと0 secondsの
    Timeオブジェクトを初期化します
  • 2:32 - 2:36
    ここで24時間の時計を使用し出力します
  • 2:36 - 2:40
    出力中にこのreprメソッドを呼び出す必要があります
  • 2:40 - 2:43
    これで時間が文字列表現となります
  • 2:43 - 2:46
    すべてを実行して文字列表現を得ましょう
  • 2:46 - 2:53
    13 hoursと0 minutes そして0 seconds
    午後1時です
Title:
02-18 Data Invariants
Video Language:
English
Team:
Udacity
Project:
CS259 - Software Debugging
Duration:
02:53

Japanese subtitles

Revisions