我想在我的CSC硬件上獲得一些幫助。它在類/對象上,它是一個定義圓的簡單類,名稱爲Circle(object)。「啓用」類比較
的HW的原文(I完成這個HW的第一兩個部分,因此該第三部分是所述初始問題的擴展):
「」「展開在您的Circle類通過使比較使用運算符(例如<,>,> =,< =,==和!=)的Circle對象的圓對象,其中一個Circle如果實際上更大(即,具有更大面積) 。
下面的代碼:
A = Circle(2, 5, 1.5)
B = Circle(-6, 1, 1)
print A < B, A != B, A >= B
應該產生這樣的輸出:
False True True
這是我的用於顯示的圓的座標和半徑的代碼:在
class Circle(object):
def __init__(self, x=0, y=0, r=0):
self.x = x
self.y = y
self.r = r
def __str__(self):
return "Circle at (%d , %d). Radius: %f" % (self.x, self.y, self.r)
def main():
print Circle(3, 5, 4.0)
main()
這個類的輸出爲「圈(3,5)。半徑:4:000000"
我們,指出我們的課本中的某一頁的數學運營商類: EQ(),GT(),GE(),LT() ,樂(),NE()等 所以我就在想,爲什麼我的教授希望這樣的事情?
import math
class Circle(object):
def __init__(self, x=0, y=0, r=0):
self.x = x
self.y = y
self.r = r
def __str__(self):
return "Circle at (%d , %d). Radius: %f" % (self.x, self.y, self.r)
def calcArea(self, r):
self.r = r
return (math.pi)*(r**2)
def __gt__(self, circ1Radius, circ2Radius)
self.circ1Radius = circ1Radius
self.circ2Radius = circ2Radius
r1 = circ1Radius
r2 = circ2Radius
r1 > r2 or r2 > r1
def __ge__(self, circ1Radius, circ2Radius)
#And so on for __lt__(), __le__(), __ne__(), etc
def main():
A = Circle(3,4,1.5)
B = Circle(1,2,5.0)
C = Circle(5,7,7)
D = Circle(9,8,3)
print A < B, B > C, A < C, A >= C
main()
#Output should be "True, False, True, False"
難道我們還要再definit我們想在課堂中使用的每種方法的離子/屬性?先謝謝你。
是的,我注意到前一陣子也是,謝謝你。我傾向於過度編程,並留下通常不需要的代碼或作爲靜重來執行代碼......當初學者時,我認爲人們傾向於更多地關注程序的工作而不是可讀性和簡潔性。 – Derrick 2011-04-28 22:48:56