3.5で名前付きタプルのカスタムオーバーロードをプラスに作成するにはどうすればよいですか?私はこれに3.6の新しい構文があることを知っています。あなたは3.5でそれを行うことができますか?私はそれがまたmypyの小切手を渡すことを望む。また、あなたが含まれているために起こるノート、何のPython 3.6で入力したnamedtuplesを定義するための新しい、クラスベースの構文は最終的に、実行時にやっていることは基本的にカスタムクラスを作成するメタプログラミングhijinkeryの束である、としてNamedTupleに `+`をオーバーロードする方法
from typing import NamedTuple
Point = NamedTuple('Point',[('x',int),
('y',int)])
def joinPoints(a: Point, b:Point) -> Point:
return Point(x = a.x+b.x,y=a.y+b.y)
q = Point(1,2)
r = Point(3,4)
s= joinPoints(q,r)
t = q+r #HOW DO I MAKE THIS GO?
#s should equal t
どのような新しい構文を指していますか?あなたは名前付きタプルをサブクラス化して '__add__'をオーバーライドする必要があります –
' __add__'を定義するためにサブクラスを作成する必要があります – theWanderer4865
サブクラスを必要としません、機能型言語のようなtrait/type-basedディスパッチが必要です: – Carbon