2012-08-16 2 views
3

예를 들어, 객체가있는 경우, x을 작성한 다음 과 y이 동일한 클래스의 새 객체 y을 어떻게 작성합니까? 자바에서Python에서 인스턴스가 주어진 클래스의 새 인스턴스를 작성하십시오.

의 나는 이런 식으로 뭔가 보일 것 원하는 코드 :

Object y = x.getClass().newInstance(); 
+0

사용자 정의 메타 클래스 및 설명을 사용할 수있는 능력 부여, 그 클래스는 파이썬에서 유연성 개념을 알아 두셔야합니다. – Antimony

답변

4

당신은 아마 같은 것을 할 수있는 :

y = x.__class__() 

또는

y = type(x)() #New style classes only 

을, 당신의 경우 새로운 스타일 클래스를 만드는 방법을 궁금해하시는 분은 object (또는 python을 사용하십시오.

+0

형식은 이전 스타일 클래스에서는 작동하지 않습니다. 또한, 이것은 아마도 메타 클래스에 대해서는 작동하지 않을 것입니다. – Antimony

+1

옛날 스타일 수업에 대한 의견을 주셔서 감사합니다. (나는 결코 사용하지 않으므로 생각하지 않았습니다.) '메타 클래스'에 관한 한, 나는 그 중 하나도 사용하지 않으므로 사용할 수 없습니다. 그걸 도와주세요. 내 솔루션이 어디에서 실패 할지를 아는 것이 좋습니다. 그 점을 지적 해 주셔서 감사합니다. – mgilson

+0

메타 클래스에 문제가있는 이유를 알 수 없습니다. 문제는 인수없이 생성자를 호출하고 일부가 필요할 수 있다는 것입니다. – JBernardo

2
거의

자바와 동일 3.X) :

y = x.__class__() 
관련 문제