2013-12-11 2 views

답변

6

번호

>>> object.__add__ 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
AttributeError: type object 'object' has no attribute '__add__' 

그들 중 일부는 __init__ 같은 기본 구현을 할 수 있지만, 대부분은 그렇지 않습니다.

+0

그래서이 방법 "마법"을 만드는가? –

+2

@wobbily_col : 일반적으로 특수 메소드는 Python이 언어 기능을 구현하는 데 사용하는 메소드입니다. 예를 들어, 반복을 위해서는'__iter__', 추가는'__add__', 객체 초기화를 위해서는'__init__'가 있습니다. 기본 구현을 갖는 것은 아무 관계가 없습니다. – user2357112

-1

아니요. 모든 마법 기능의 기본 구현이 없습니다.

모든 개체가 공통 기본 기본 클래스에서 상속 된 경우에만 해당됩니다.

다른 클래스가 있으며 이러한 클래스의 다른 구현에는 다른 마법 함수가 필요합니다.

당신이 할 수있는 객체의 모든 기능을 찾으려면 클래스 이름

를 얻을 수 object.__class__를 수행 dir(object)

더 - http://docs.python.org/release/2.5.2/ref/node33.html

+0

"모든 개체가 공통 기본 기본 클래스에서 상속 된 경우에만 해당됩니다." - 예외는 공통 기본 기본 클래스에서 상속합니다. 그 클래스는'object'입니다. – user2357112

+0

수정 해 주셔서 감사합니다! – Arovit

관련 문제