[python] Python 클래스 정의 구문

차이점이 있습니까?

class A:
    ...

class A():
    ...

나는 방금 내 수업 중 두 개가 전자로 정의되고 잘 작동한다는 것을 깨달았습니다. 빈 괄호가 차이가 있습니까?



답변

후자는 이전 버전의 Python의 구문 오류입니다. Python 2.x에서는 새로운 스타일의 클래스object 에서만 몇 가지 유용한 기능을 사용할 수 있기 때문에 가능할 때마다 파생해야합니다 ( 새 스타일 클래스가 기본값이므로 Python 3.x에서는 파생 항목 이 선택 사항입니다).object


답변

클래스 정의에서 빈 괄호를 사용하는 것이 구문 적으로 올바르지 않을 수 있지만 클래스 정의 뒤의 괄호는 상속을 나타내는 데 사용됩니다. 예 :

class A(baseClass):
    ...

Python에서 기본 클래스가없는 클래스 선언의 기본 구문은 다음과 같습니다.

class A:
    ...

다른 클래스를 서브 클래 싱하지 않는 한 괄호를 사용하지 마십시오.

문제에 대한 문서 는 Python에서 클래스를 선언하고 사용하는 방법에 대한 더 나은 이해를 제공해야합니다.


답변