[英]Beginner python: what's wrong with my call to check_angles? (or the method itself, if it's that)
我的電話check_angles返回以下內容而不是True:
<bound method Triangle.check_angles of <Triangle object at 0x7fb209a66b50>>
這是代碼:
class Triangle(object):
number_of_sides = 3
def __init__(self, angle1, angle2, angle3):
self.angle1 = angle1
self.angle2 = angle2
self.angle3 = angle3
def check_angles():
if angle1 + angle2 + angle3 == 180:
return True
else:
return False
my_triangle = Triangle(60, 60, 60)
(print my_triangle.number_of_sides)
(print my_triangle.check_angles)
方法的末尾缺少()
。
輸出正確: my_triangle.check_angles
返回函數本身,因此您獲得的文本就是該函數的描述。 要實際打印結果,只需print my_triangle.check_angles()
。
PS。 請當心浮點數。 使用整數以外的值時,總和可能不完全是180
。 這將是一個非常接近的數字。 如果您需要除整數以外的任何內容,那么abs(result-180) < 1e-6
(或其他要比較的小數字)會更好。
您必須添加括號才能調用該函數。 做。
class Triangle(object):
number_of_sides = 3
def __init__(self, angle1, angle2, angle3):
self.angle1 = angle1
self.angle2 = angle2
self.angle3 = angle3
def check_angles(self):
if self.angle1 + self.angle2 + self.angle3 == 180:
return True
else:
return False
my_triangle = Triangle(60, 60, 60)
print my_triangle.number_of_sides
print my_triangle.check_angles()
您的實現有一些小問題,因為您沒有在函數中傳遞self
,而沒有執行self.angle1
等等。 另外,將number_of_sides
放入__init__
可能很有用。
首先,您缺少方法調用的括號。
接下來,您必須將self
作為參數提供給類中的任何方法。
def check_angles(self):
另外,您也不想使用angle1
, angle2
或angle3
您需要在self.
添加前綴self.
您才能在適當的范圍內使用它們。
最后,是一種樣式:您可以返回self.angle1 + self.angle2 + self.angle3 == 180
,因為它是布爾值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.