2022-09-05 Python 3.11の新機能(その3)関数呼び出しのインライン化
Python 3.11では、パフォーマンスチューニングの一環として、Python関数呼び出しのインライン化 が行われました。既存のPythonインタープリタのしくみを大きく変更する変更ですので、簡単に解説しておきます。
先に書いておきますが、今回行われた「関数呼び出しのインライン化」は、C/C++などの inline
のように、ユーザ定義関数を呼び出し元で展開してオーバヘッドを削減するものではありません。また、Schemeなどにある末尾再帰の最適化でもありません。
cevalループ¶
Pythonインタープリタは、Pyt
2022-09-01 Python 3.11の新機能(その2) 特殊化適応的インタープリタ
特殊化適応的インタープリタ(PEP 659: Specializing Adaptive Interpreter) は、 Python 3.11の新機能(その1) CPython高速化計画 で紹介した CPython 高速化計画 の一環として導入された新機能で、実行中にプログラムをより効率的な処理に書き換えて高速化する仕組みです。
バイトコード¶
Pythonはプログラムを実行するとき、ソースコードをコンパイルしてバイトコードと呼ばれる実行用のデータを生成します。例えば、次の関数 func_add()
def func_add(a, b):
r
2022-08-30 Python 3.11の新機能(その1) CPython高速化計画
今年も、Pythonのメジャーリリースの季節がやってまいりました。2022年10月3日にリリース予定となっているPython 3.11の新機能を紹介します。
CPython 高速化計画¶
Python 3.11で最大のニュースは、なんと言っても Faster CPython: CPython 高速化計画 が開始されたことでしょう。
CPython 高速化計画は、Mark Shannon氏が提案したプランに基づいてPythonの高速化を行うもので、Pythonを毎年50%高速化し、互換性を保ちつつ 4年間で5倍高速化する ことを目標として
2022-07-15 DjangoCongress JP 2022 発表者募集

DjangoCongress JP 2022が発表者を募集しています。
DjangoCongress JPは日本で最大級の、WebフレームワークDjangoに関したイベントです。 発表者の募集は8月12日(金曜日)に締切です。
たとえば以下のような観点で募集されています
- Djangoの最新情報
- Djangoの便利な使い方、Tips
- Djangoで使えるライブラリーの紹介
- テストの書き方や勘所、便利な方法
- アプリケーションやモデルの設計方法や事例
- Djangoの学び方や入門の方法
発表へ応募するには以下のフォームに投稿してください。 詳
2021-10-05 Python 3.10の新機能(その11) その他の変更
その他、Python 3.10 で更新された機能から、お気に入りの項目を簡単に紹介します。
オックスフォード大学問題¶
さてみなさん、Pythonのインタープリタを起動して、次の式を実行してみてください。
0xfor-d*University
一見、エラーになりそうに見えますが、15
という値が返ってきます。なぜこんな結果になるのか、わかるでしょうか?
この式を見やすく変形すると、次のようになります。
0xf or (-d * University)
元の式 0xfor
は、16進数の 0xf
の直後に空白をつけ