どうすれば良いか
self
に初期値を設定してあげると、インスタンス関数をクラスから呼び出したときもエラーが出なくなる。
.py
from typing import Self
class A():
def A(self: Self | None = None):
if self is None:
print("I am static method A")
else:
print("I am instance method A")
A.A()
# >>> I am static method A
A().A()
# >>> I am instance method A
便利だと思うか、分かりにくいと思うかはあなた次第。