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
の直後に空白をつけ
2021-09-10 Python 3.10の新機能(その10) Dataclassでslotsが利用可能に
dataclass は、Pythonで主にデータを格納するためのクラスで、C言語などでは構造体に相当するようなデータ構造を、かんたんに定義できるようになっています。
たとえば、次の Person
は、名前と年齢を格納するdataclassです。
from dataclasses import dataclass
@dataclass
class Person:
name: str
age: int
person1 = Person(name="パーソン太郎", age=20)
person2 = Person(name="パーソン次郎", age=30