2017-11-28 1 views
-1

나는 내 코드에 문제가있다. 파이썬 프로그래밍 초보자 다. 그래서 나는 모든 오류를 이해하지 못한다. 그래서 나는 아래의 도움이 코드에 있다는 것을 매우 기쁘게 생각한다. 단지 오류를 찾기 위해 집중적으로 점검 :Class Orientated Objects in Python 오류가 있습니까?

Traceback (most recent call last): 
File "class.py", line 9, in <module> 
roscoe.sleep(4) 
AttributeError: 'Animal' object has no attribute 'sleep' 
+0

로스코 roscUe VS는 오류 U 버전이 클래스 내의 메소드를 생성 – ColdCat

+0

검사에게 적절한 구문없는 정확하다. – SherylHohman

+0

새로운 오류가 발생했습니다. – Inferno

답변

3

당신은 마지막 줄에 구문 오류가 있습니다

class Animal(object): 
def __init__(self,legs,name): 
    def sleep(self,hours): 
     print("%s is sleeping for %d hours!" % (self.name,hours)) 
    self.legs = legs 
    self.name = name 
roscoe = Animal(4, "Canis Lupus Familiaris") 
roscoe.name = ("Roscoe") 
roscoe.sleep(4) 

이것은 오류이다. 그것은해야한다 : 당신이 파이썬에서 begginner있어 볼 수 있기 때문에

roscoe.sleep(4) 

대신

roscue.sleep(4) 

더 문맥을주기. 파이썬 인터프리터의 추적 (파이썬 코드를 실행하는 "프로그램")은 어떤 일이 일어 났는지 알려줍니다. 이 경우 "name 'roscue'가 정의되지 않았습니다."라고 표시됩니다. 이것은 대개 구문 오류입니다. 때때로 그것은 당신이 그 기능을 정의하지 않았다는 것을 의미 할 수 있습니다. 그러나이 경우에는 전자가됩니다.

또한 조금 더 자세히 살펴보면 들여 쓰기 오류가 발생할 수 있습니다. 파이썬에서는 탭이나 공백을 사용하여 함께 넣고 싶은 모든 블록을 들여 써야합니다.

마지막으로, 함수에 대해 생각해보십시오. 순서를 정해야합니다. Init는 함수이고 sleep은 또 다른 함수이므로 각 블록이 끝나면 블록이 생깁니다. 다른 블록은 따로 들여 써야합니다. 코드는 어떻게 보이게되어 있지만 맹목적으로 실행하는 대신 수정하십시오.

class Animal(object): 
    def __init__(self,legs,name): 
    self.legs = legs 
    self.name = name 
    def sleep(self,hours): 
    print("%s is sleeping for %d hours!" % (self.name,hours)) 

roscoe = Animal(4, "Canis Lupus Familiaris") 
roscoe.name = ("Roscoe") 
roscoe.sleep(4) 
+0

나는이 문제를 해결했지만 속성 오류가 발생했습니다 – Inferno

+1

업데이트 된 답변을 살펴보면 코드가 약간 벗어났습니다. 블록이 무엇인지, 함수를 올바르게 정의해야하는지 이해해야합니다. Animal 클래스의 각 함수는 동일한 레벨에서 들여 쓰기되어야하며 원래 게시물 에서처럼 함수를 중첩하지 않으려 고합니다. –

+0

이번에는 다른 오류가 발생했지만 매개 변수를 사용하지 않았지만 작동하지 않았고 지금까지 주된 문제를 해결해 주셔서 감사합니다. – Inferno