저는 파이썬을 단계별로 배우고 있습니다. 오늘은 객체 지향 프로그래밍에 대해 설명합니다. 나는 간단한 수업을 만들고 사용하는 법을 알고 있지만, 뭔가 저를 괴롭 힙니다. 파이썬에서 사용하는 대부분의 객체는 생성자를 호출 할 필요가 없습니다.__init__ 메소드를 호출하지 않고 파이썬 클래스 사용하기?
어떻게 작동합니까? 또는 생성자가 암시 적으로 호출 되었습니까? 예 :
내가 (실제로 작동) 이런 식으로 갈 것이다(http://www.diveinto.org/python3/xml.html#xml-parse에서)
>>> import xml.etree.ElementTree as etree
>>> tree = etree.parse('examples/feed.xml')
>>> root = tree.getroot()
>>> root
<Element {http://www.w3.org/2005/Atom}feed at cd1eb0>
:
>>> import xml.etree.ElementTree as etree
>>> tree = etree.ElementTree() # instanciate object
>>> tree.parse('examples/feed.xml')
내가 프로그래밍이 방법을 사용하려면을 (호출하지 않습니다 생성자, 또는 적어도 암묵적으로 내 자신의 프로젝트에 대한 호출),하지만 난 정말 어떻게 작동받을 수 없습니다.
감사합니다.
은'.parse()는'기능은 당신을 위해 개체를 만듭니다. 함수가 그렇게 할 수 있습니다. 물건을 한 다음 결과를 반환하십시오. 왜 놀랍 죠? –
질문 제목에 대한 답을 찾는 누군가가 여기에 오면 쉽게 할 수 있습니다. 빈 메소드를 사용하여'__init__'를 오버라이드하는 서브 클래스를 생성하십시오. – tripleee
이 질문에 직접 대답하지는 않지만 Python 프로그래밍 전체와 클래스에 적용됩니다. 클래스에는 마법 메서드가 있습니다. '__init__'은 하나이지만 많은 것들이 있습니다. 팩토리 함수로는 할 수 없을지라도, 당신의 질문과 당신이하고자하는 것에 관련된'__call__' 메쏘드를 조사해야합니다. http://www.rafekettler.com/magicmethods.html#callable – RyPeck