Class properties are deprecated in Python 3.11 and will not be supported in Python 3.13

作業環境

始まり

連鎖クラスメソッドが3.11で廃止されますよという共有です。


Removed chained classmethod descriptors (introduced in gh-63272). This can no longer be used to wrap other descriptors such as property. The core design of this feature was flawed and caused a number of downstream problems. To “pass-through” a classmethod, consider using the __wrapped__ attribute that was added in Python 3.10. (Contributed by Raymond Hettinger in gh-89519.)


What’s New In Python 3.13 — Python 3.13.0a4 documentation


ちなみにうちのライブラリ(ReinLib)ちゃんでは、こんな感じで使っていました。主に汎用クラス系ですね。


ちなみにこの使い方に技術的なアドバンテージはなく、なんなら無駄しかないのですが、コードの書き方的にこっちの方がかっこいいんですよね。あくまで主観の話ですわよ。

# 括弧がいまいちダサい
Image.new("RGBA", image_size.wh, Color.zero().rgba)

# とっても かっこいい!!!
Image.new("RGBA", image_size.wh, Color.zero.rgba)


切り替えてから1週間程度なのでまだ違和感が拭えないですが、これからはこのスタイルの書き方と付き合っていこうと思います。__wrapped__でアレコレしてねと案内がありましたが、そこまで溺愛している訳ではないので、別に居ないなら居ないで、すっぱり別れますわ。


おわり!!!

まぁでも改めて見ると無茶苦茶な使い方やな。そりゃ廃止されるわ。ぐっばい。連鎖クラスメソッドちゃん。

割と自由に使え過ぎて地雷感半端ねぇので、ぶっちゃけ長生きはできねぇだろうなと内心思っていましたが、いざ消されるとなると少し傷心しました。

ですが、セレオブの発売日が告知されていたので回復しました。(単純バカ)

発売日    2024年7月26日(金)

予約受付開始 2024年3月29日(金)

時期的にも夏休み取れそうなのでうふふです。
仮に延期しても2, 3か月なら夏休みの有効射程範囲ですわ。
ふふふふふふふ。

やべぇ、Unreal EngineとかどうでもいからReinVisionOCR始動させねば。

暫く更新滞りますわぁ。んじゃ。

あ、ちなみに、そのうち再公開するReinVisionOCRの汎用ライブラリのReinLibちゃんをリポジトリに上げています。他にもPython系の記事で触れている汎用的な機能はココに積んでいくのでよろしくです。主運用はReinVisionOCRの各開発環境のサブモジュールですけどね。