Python 클래스 정의 구문


90

차이점이 있습니까?

class A:
    ...

class A():
    ...

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

답변:


22

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


7
파이썬 3에서는 더 이상 사실이 아닙니다. object넌센스 에서 파생 된 모든 것은 자동으로 처리됩니다.
temporary_user_name

4
class A()구문 오류 가 있었습니까 ? 파이썬 1.4 문서는 그것의 좋은 말을하고, 사람들은 여전히 python.org에서 사용할 수있는 가장 오래된 문서이다.
user2357112 모니카 지원

86

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

class A(baseClass):
    ...

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

class A:
    ...

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

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

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.