class type_name:
def __init__(self, fields):
self._fields = fields
self._mutable = False
self.a = self._fields[0]
self.b = self._fields[1]
self.c = self._fields[2]
def _replace(self, **kargs):
if self._mutable:
for key, value in kargs.items():
if key == 'a':
self.a = value
if key == 'b':
self.b = value
if key == 'c':
self.c = value
return None
else:
A = self.a, B = self.b, C = self.c
return self.type_name(**kargs)
_replaceメソッドは、入力として** kargsをとります。 _replaceメソッドは、インスタンス名self._mutableに格納されている値によって異なります。 self.mutable == trueの場合、呼び出されたオブジェクトのインスタンスの名前が変更され、Noneが返されます。origin = Point(0,0)、origin._replace(y = 5)原点が変更されているため、print(origin)はPoint(x = 0、y = 5)として表示されます。_replaceメソッドの修正方法
self.mutable == Falseの場合、kargsで指定されたものを除いて、インスタンス名の値が同じである同じクラスの新しいオブジェクトを返します。したがって、origin = Point(0,0)でnew_origin = origin._replace(y = 5)を呼び出すと、print(origin、new_origin)はPoint(x = 0、y = 0)として表示されます。Point 、y = 5)
私の関数_replaceに何が間違っているのか分かりませんが、誰か助けてもらえますか?ありがとう
'' like 'を使ってテキストの本文を正しくフォーマットしてください ' –
martianwars