Also einige Probleme mit einer Klasse Methoden. Ich werde alle Informationen veröffentlichen, die ich habe. Ich muss die relevanten Methoden für die gestellten Fragen schreiben.Class method Probleme - Python
import math
epsilon = 0.000001
class Point(object):
def __init__(self, x, y):
self._x = x
self._y = y
def __repr__(self):
return "Point({0}, {1})".format(self._x, self._y)
Erste Frage; Ich muss eine Methode namens disttopoint hinzufügen, die ein anderes Punktobjekt p als Argument verwendet und den euklidischen Abstand zwischen den beiden Punkten zurückgibt. Ich kann math.sqrt verwenden.
Testfälle:
abc = Point(1,2)
efg = Point(3,4)
abc.disttopoint(efg) ===> 2.8284271
Zweite Frage; füge eine Methode namens isnear hinzu, die ein weiteres Punktobjekt p als Argument nimmt und True zurückgibt, wenn der Abstand zwischen diesem Punkt und p kleiner ist als epsilon (oben im Klassenskelett definiert) und andernfalls False. Verwenden Sie disttopoint.
Testfälle:
abc = Point(1,2)
efg = Point(1.00000000001, 2.0000000001)
abc.isnear(efg) ===> True
Dritte Frage; füge eine Methode namens addpoint hinzu, die ein anderes Punktobjekt p als Argument nimmt und diesen Punkt so ändert, dass es die Summe aus dem alten Wert und dem Wert von p ist.
Testfälle;
abc = Point(1,2)
efg = Point(3,4)
abc.add_point(bar)
repr(abc) ==> "Point(4,6)
Was weißt du nicht zu tun? –
Sie könnten mit etwas hinzugefügten Python-Magie tun: anstatt eine Methode 'add_point' (oder so gut wie es), könnten Sie' __iadd__'; dann würdest du 'abc + = bar' machen. Wiederholen Sie den Vorgang für andere Operatoren (siehe Dokumentation für das, was sie alle sind) –