ABC를 사용하는 것과 ABC를 사용하는 것 사이에 차이점이 있습니까?
Python 3.4+에서는
class Foo(abc.ABC):
...
아니면 할 수 있습니다.
class Foo(metaclass=abc.ABCMeta):
...
제가 알아야 할 두 가지 차이점이 있습니까?
abc.ABC
기본적으로 한 층만 더.metaclass=abc.ABCMeta
.예abc.ABC
메타 클래스를 암시적으로 정의합니다.
(출처: https://hg.python.org/cpython/file/3.4/Lib/abc.py#l234)
class ABC(metaclass=ABCMeta):
"""Helper class that provides a standard way to create an ABC using
inheritance.
"""
pass
유일한 차이점은 전자의 경우 단순 상속이 필요하고 후자의 경우 메타 클래스를 지정해야 한다는 것입니다.
Python 3.4의 새로운 기능(내 기능 강조):
신반
ABC
가지다ABCMeta
메타 클래스로서.사용.ABC
기본 클래스가 지정하는 것과 본질적으로 동일한 효과를 가지므로metaclass=abc.ABCMeta
입력하기 쉽고 읽기 쉽습니다.
관련 문제: 다음을 직접 호출하는 대신 상속을 통해 추상 기본 클래스__metaclass__
언급URL : https://stackoverflow.com/questions/33335005/is-there-any-difference-between-using-abc-vs-abcmeta
'programing' 카테고리의 다른 글
에서 응용 프로그램의 경로를 가져오려면 어떻게 해야 합니까?NET 콘솔 애플리케이션? (0) | 2023.05.04 |
---|---|
Angular 2 azure 배포 새로 고침 오류: 찾고 있는 리소스가 제거되었거나 이름이 변경되었거나 일시적으로 사용할 수 없습니다. (0) | 2023.05.04 |
React Native를 사용할 때 데이터를 저장하기 위한 옵션은 무엇입니까? (iOS 및 Android) (0) | 2023.05.04 |
스택 생성 날짜 가져오기 (0) | 2023.05.04 |
if-statement에서 파이썬의 &&(논리적-and)에 해당하는 것은 무엇입니까? (0) | 2023.05.04 |