문자 클래스를 작성하는 함수와 주 코드가있는 모듈이있는 프로그램과 같은 전투를하고 있습니다. 여기 다른 모듈에서 함수 가져 오기 : AttributeError : 'module'객체에 속성이 없습니다.
AttributeError: 'module' object has no attribute
함수이다 : 나는 문자 중 하나의 상태를 변경하는 함수를 가져 오면 내가 말하는 오류가
def changeHealth(self,health,defense,Oattack):
self.health = health - (Oattack - defense) - 15
return self.health
나는 주 코드 모듈의 함수를 호출 할 때 나는이 작업을 수행 :
import CharacterClass
CharacterClass.changeHealth(self,health,defense,Oattack)
'self = Character()'이것은 제거되어야합니다. 파이썬에서는 이것을하지 마십시오. – Julien
접근 방식에는 많은 문제점이 있습니다. 하나의 클래스 정의 내에서 함수를 재정의하고 사용하지 않는 변수를 생성합니다 ('self = Character()'는 결코 액세스하지 않는 클래스 변수를 만듭니다). 데이터 모델을 변경하십시오. 프로그램에서 주인공과 상대방을 '캐릭터'로 만들 수 있습니다 (클래스 내부가 아님). 그런 다음 주인공과 상대방의 속성에 액세스하고 각자의 건강을 적절하게 변경하는 '전투'기능을 사용하십시오. – Craig
@Craig, 어떻게 상대를 만들 수 있습니까? self = Character() –