2017-12-14 12 views
0
import math 
class Circle(): 
    def __init__(self,radius,centre): 
     self.radius=radius 
     self.centre=centre 

    def circumference(): 
     return 2.0*math.pi*self.radius 


c1 = Circle(1.0, (0.5 , 1.0)) 
c2 = Circle(1.5, (-0.5 , 2.0)) 

print(c1.radius) 
print(c2.radius) 
print(c1.circumference) 
print(c2.circumference) 

출력 :파이썬 3.6.3 (OOPS)

1.0 
1.5 
<bound method Circle.circumference of <__main__.Circle object at 0x7facb18214a8>> 

이 오류가 무엇을 의미합니까?

+1

어떤 오류? ... – Sayse

+5

내부 (__init__에 정의 된) radius에 액세스하는 방법/기능 circumference 내부 self을 통과해야합니다. 함수 서명을 인쇄 중입니다. 대신'c1.circumference()'를 호출 해보십시오. –

+2

또한'circum' 정의에'self'를 전달해야합니다. –

답변

0

circumference 다음에 중괄호를 쓰는 것을 잊었을 수 있습니다. circumferenceClass Circle의 메서드이므로 circumference()으로 호출해야합니다. 또한 여기에는 오류가 없습니다 circumference

import math 
class Circle(): 
    def __init__(self,radius,centre): 
     self.radius=radius 
     self.centre=centre 

    def circumference(self): 
     return 2.0*math.pi*self.radius 


c1 = Circle(1.0, (0.5 , 1.0)) 
c2 = Circle(1.5, (-0.5 , 2.0)) 

print(c1.radius) 
print(c2.radius) 
print(c1.circumference()) 
print(c2.circumference()) 
+0

이것은 사실 일 수도 있지만, 이것은 질문에서 요구하는 것이 아닙니다. – Sayse

+0

들여 쓰기가 잘못되어 죄송합니다. 나는 이것을 확인할 수있는 코드를 수정했다. –