나는 다음과 같은 새 정의가 : 그것은 마지막 줄에 오류가 제기되고메소드에서 인스턴스 참조를 전달하는 방법은 무엇입니까?
class Bird:
def __init__(self, swarm, position = None):
if (swarm == None):
raise ValueError("swarm variable should not be None!")
if (not(type(swarm)).__name__ == 'ParticleSwarmOptimization'):
raise TypeError("swarm variable must be of type ParticleSwarmOptimization!")
합니다. 인터프리터에서는 다음을 인쇄합니다.
(type(swarm)).__name__
'instance'
"ParticleSwarmOptimization"을 인쇄 할 것으로 예상됩니다. 나는 새의 생성자 다음과 같은 방법으로 전화 해요 : 나는 모든 새가 주요 ParticleSwarmOptimization 클래스에 대한 참조를 가지고 싶어이와
def AddBird(self, position = None):
self.birds += Bird(self, position)
를, 나는 새가 만들어 질 때마다 나는 사실이 있는지 확인하려면 ParticleSwarmOptimization 인스턴스 참조이며 다른 것은 아닙니다.
감사합니다.
+1 새로운 스타일의 클래스를 추천하기 위해 +1 스타일을 포함하여 많은 문제를 수정했습니다 (이 작은 것을 포함하여 ;-). 모두가 말하는대로 isinstance는 여전히 더 좋은 아이디어입니다 ;-). –