tl;dr: オプションの引数の型をカスタム ビルド クラスに設定する方法を知りたいです。
コード:
class Point(object):
def __init__(self,x=int,y=int): # Initialize Point object with optional args
self.val=(x,y)
def __add__(self,p=Point): # p=Point is the issue
...
私はもう試した:
def __add__(self,p=self.__class__): # Cannot reference self in an arg.
def __add__(self,p=Point): # Point is not defined
長い話:
私はこれまでに何も見つけられなかったいくつかの検索を行いましたが、私が使用している用語の方が多いと思います.
私は 2 次元の Point/Vector クラスを作成しています (わかっていますが、既に完了していますが、自分の書き方を学び、開発しています)。ほとんどの場合、主にメンテナンスの容易さ。
オプションの引数の型を、Python の組み込み型の 1 つではなく、上記の Point などのカスタム ビルド クラスに設定する方法を理解できませんでした。
注:単純にpa位置引数を作成するだけで機能することは承知していますが、そうしない主な理由がない限り、pythonの哲学に対して少し厳格であることを除いて、私はしたいと思いますコードをわかりやすくするために引数を入力します。
それはどのように達成できますか、それは価値がありますか、そしてこの方法で物事を行うことの短所はありますか?
この種のベスト プラクティスに関するヒントも大歓迎です。