본문 바로가기
파이썬

파이썬 첫 번째 인수로 인스턴스가있는 바인딩되지 않은 메서드는 문자열을 얻었지만 다른 것이 필요합니다.

by º기록 2021. 2. 17.
반응형
#Maps.py
class Maps(object):

    def __init__(self):
        self.animals = []
        self.currently_occupied = {}

    def add_animal(self, name):
        self.animals.append(name)
        self.currently_occupied = {robot:[0, 0]}



#animal.py
class Animal(object):

    def __init__(self, name):
        import maps
        maps.add_animal(rbt)
        self.name = name


#Tproject.py
from Animal import Animal
Fred = Animal("Fred")

나에게 다음과 같은 오류가 발생합니다.

TypeError : 언 바운드 메서드 add_animal ()은 Maps 인스턴스를 첫 번째 인수로 사용하여 호출해야합니다 (대신 str 인스턴스를 가져옴).

하지만 나는 그것이 의미하는 바를 모르고 구글이나 야후를 통해 검색을 알아낼 수 없습니다 :(

 

해결 방법

 

Maps 클래스가 아닌 Maps 인스턴스가 필요합니다.

 maps.Maps.add_animal("Fred") # gives error

 mymap = maps.Map()

 mymap.add_animal("Fred") # should work

따라서 Animal 클래스, Animal 인스턴스 당 또는 전역 개체로 mymap 속성을 가져야합니다 (귀하의 경우에 가장 적합한 항목).

 

참조 페이지 https://stackoverflow.com/questions/10645444

 

 

반응형

댓글