이것은 코드입니다. 표준 Binary Tree 클래스입니다.임시 변수를 사용하지 않고 클래스의 변수 교환
다른 절에서class BinaryTree:
def __init__(self,rootObj):
self.key = rootObj
self.leftChild = None
self.rightChild = None
def insertLeft(self,newNode):
if self.leftChild == None:
self.leftChild = BinaryTree(newNode)
else:
t = BinaryTree(newNode)
t.leftChild = self.leftChild
self.leftChild = t
가, 나는 t 변수를 제거하고 단순히이 할 수있는 :
BinaryTree(newNode).leftChild, self.leftChild = self.leftChild, BinaryTree(newNode)
겠습니까이 일을? BinaryTree 클래스를 두 번 호출하는 것처럼 보입니다. 두 개의 다른 인스턴스를 만들겠습니까?
당신이 (__init__''에 선택적 인수, 당신이 할 수있는'self.leftChild = BinaryTree (newNode, leftChild = self.leftChild)'로 왼쪽/오른쪽 아이를 취할 수 또한 if self.leftChild == None'을 명시 적으로 검사하는 번거 로움을 덜어 줄 것입니다 –
질문에 대답하려면 예. 두 개의 다른 인스턴스가 생성됩니다. –
새로 생성 된 개체에 대한 참조가 없습니다. 전화를 걸면 쓰레기 수거됩니다. –