このBlogは移転しました。今後は aish.dev を御覧ください。

2016-12-01から1ヶ月間の記事一覧

Python 3.6の概要 (その6 - ローカル時間の曖昧さを解消)

夏時間を採用している地域では、1日に2回、同じ時間となる場合がある。たとえば、アメリカの東部時間では、11月第1日曜日の午前2時に夏時間が終了すると、また同じ日の午前1時にもどる。つまり、この日は午前1時は2回存在することとなり、このタイムゾーンで…

Python 3.6の概要 (その5 - ファイルシステムパス プロトコル)

ファイルシステムパス プロトコル pathlib はPython3.4で導入されたが、pathlibで表現されるファイルパスは、 open() やos.path.* などの、既存のファイル操作関連関数では使用できないため、あまり便利には使えていなかった。 Python3.6からは、pathlib.Pat…

Python 3.6の概要 (その4 - クラス定義)

クラス定義のカスタマイズ これまで、Pythonのクラス定義をカスタマイズする手段として、メタクラスが使われてきた。しかし、メタクラスを利用したカスタマイズは、Pythonのオブジェクトモデルや型システムの知識が必要で実装が難しく、また複数のメタクラス…

Python 3.6の概要 (その3 - async関連)

非同期ジェネレータ 現在のPythonでは、ジェネレータを使って、とてもお手軽にイテレータを作成できる。例えば、奇数列を生成するジェネレータは、次のように書ける。 def odds(): i = 1 while True: yield i i += 2 しかし、ジェネレータが存在しなかった頃…

Python3.6の概要(その2 - 変数アノテーション)

変数アノテーション PEP 484 -- Type Hintsで導入された型ヒントが、モジュールのグローバル変数や、クラスのインスタンス変数などにも指定できるようになった。PEP 526 -- Syntax for Variable Annotations 変数の型アノテーションは、mypy などではコメン…

Python 3.6の概要 (その1 - f文字列)

f文字列 これまで、Pythonで文字列に変数を埋め込む方式にはいくつかあったが、ついに式を文字列中に直接記述できるようになった。 (PEP 498 -- Literal String Interpolation) 式を埋め込んだ文字列はf文字列(formatted string:フォーマット済み文字列)と呼…