2013-10-24 2 views
0

간단히 말해서, 클래스를 함수로 인수로 전달하고 싶습니다. 사용하는 클래스에는 여러 가지 메소드가 있습니다. 여기에 클래스의 :클래스를 함수에 인수로 전달하고 그 메서드를 사용하십시오.

class Node: 
    def __init__(self,parent,foods): 
     self.state = state 
     self.foods = foods 
     self.parent = parent 

    def getParent(self): 
     return self.parent 

    def getFoods(self): 
     return self.foods 

그리고 다른 곳에서 함수에 나는 작동하려면이 클래스를 전달하고 있습니다 (부모도 Node입니다)하지만 난 모든 속성을 사용할 수 없습니다 것 같다.

def CalculateSomethingAboutThisNode(node): 
    daddy = node.getParent() 
    foodsOfDaddy = daddy.getFoods() 

그러나 나는이 오류를 받고 있어요 : 여기에 기능입니다

line 551, in CalculateSomethingAboutThisNode 
    foodsOfDaddy = daddy.getFoods() 
AttributeError: 'NoneType' object has no attribute 'getFoods' 

여기에 나를 간염하십시오.

+0

수입 PDB를; pdb.pm()은 역 추적하고 잘못된 입력을 파악하는 데 매우 유용합니다. –

답변

3

노드에 상위 노드가 없습니다. 다시 말해, 루트 노드입니다.

이와 같이 daddyNone이고 그 의미는 daddy.getFoods()입니다.

1

당신은 당신의 코드를 수정해야합니다

def CalculateSomethingAboutThisNode(node): 
if not node is None: 
    daddy = node.getParent() 
    foodsOfDaddy = daddy.getFoods() 
관련 문제