Python 내장 함수 type 기반 새 유형 만들기
class type(object)
class type(name, bases, dict)
With one argument, return the type of an object. The return value is a type object and generally the same object as returned by object.__class__.
The isinstance() built-in function is recommended for testing the type of an object, because it takes subclasses into account.
With three arguments, return a new type object. This is essentially a dynamic form of the class statement. The namestring is the class name and becomes the __name__ attribute; the bases tuple itemizes the base classes and becomes the __bases__ attribute; and the dict dictionary is the namespace containing definitions for class body and is copied to a standard dictionary to become the __dict__ attribute.
대상의 형식을 되돌려주거나 전송된 매개 변수에 따라 새로운 형식을 만듭니다
설명:
1. 함수가 매개 변수만 전달되면 매개 변수 대상의 유형을 되돌려줍니다.반환 값은 객체 유형입니다. 일반적으로 객체와.__class__반환된 객체는 동일합니다.
# A
>>> class A:
name = 'defined in A'
# A a
>>> a = A()
#a.__class__
>>> a.__class__
<class '__main__.A'>
#type(a) a
>>> type(a)
<class '__main__.A'>
#
>>> type(a) == A
True
2. type 함수를 통해 대상이 특정한 유형의 실례인지 검사할 수 있지만, isinstance 함수를 사용하는 것을 추천합니다. 왜냐하면 isinstance 함수는 부류 하위 클래스 간의 계승 관계를 고려하기 때문입니다.
# B, A
>>> class B(A):
age = 2
# B b
>>> b = B()
# type b A, False
>>> type(b) == A
False
# isinstance b A, True
>>> isinstance(b,A)
True
3. 함수의 또 다른 사용 방식은 3개의 매개 변수를 전송하는 것이다. 함수는 3개의 매개 변수를 사용하여 새로운 유형을 만들 것이다.여기서 첫 번째 매개 변수name는 새로운 유형의 클래스 이름, 즉 유형의 ___로 사용됩니다.name__속성두 번째 매개변수는 요소 유형이 모두 클래스 유형인 메타그룹 유형으로, 새로 생성된 유형의 기본 클래스, 즉 유형의 ___로 사용됩니다.bases__속성세 번째 매개 변수dict는 새로 생성된 클래스의 주체 정의를 포함하는 사전입니다. 즉, 값이 형식의 __로 복사됩니다.dict__속성 중.
# A, InfoA
>>> class A(object):
InfoA = 'some thing defined in A'
# B, InfoB
>>> class B(object):
InfoB = 'some thing defined in B'
# C, InfoC
>>> class C(A,B):
InfoC = 'some thing defined in C'
# type D, InfoD
>>> D = type('D',(A,B),dict(InfoD='some thing defined in D'))
#C、D
>>> C
<class '__main__.C'>
>>> D
<class '__main__.D'>
# C、 D
>>> c = C()
>>> d = D()
# c、 b
>>> (c.InfoA,c.InfoB,c.InfoC)
('some thing defined in A', 'some thing defined in B', 'some thing defined in C')
>>> (d.InfoA,d.InfoB,d.InfoD)
('some thing defined in A', 'some thing defined in B', 'some thing defined in D')
이상은 본문의 전체 내용입니다. 여러분의 학습에 도움이 되고 저희를 많이 응원해 주십시오.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Python의 None과 NULL의 차이점 상세 정보그래서 대상 = 속성 + 방법 (사실 방법도 하나의 속성, 데이터 속성과 구별되는 호출 가능한 속성 같은 속성과 방법을 가진 대상을 클래스, 즉 Classl로 분류할 수 있다.클래스는 하나의 청사진과 같아서 하나의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.