반응형
파이썬 : self .__ class__ vs. type (self)
이 질문에 이미 답변이 있습니다.
차이점이 있는지 궁금합니다.
class Test(object):
def __init__(self):
print self.__class__.__name__
과
class Test(object):
def __init__(self):
print type(self).__name__
?
둘 중 하나를 선호하는 이유가 있습니까?
(내 사용 사례에서는 로거 이름을 결정하는 데 사용하고 싶지만 이것은 중요하지 않은 것 같습니다)
>>> class Test(object): pass
>>> t = Test()
>>> type(t) is t.__class__
True
>>> type(t)
__main__.Test
그래서 그 두 가지는 동일합니다.
그것이 무엇인지 더 분명
하기 self.__class__
때문에 나는 사용할
것입니다.
그러나 type(t)
이전 스타일 클래스의 인스턴스 instance
유형은 다음과 같고 새 스타일 클래스 인스턴스 의 유형은 해당 클래스이므로 이전 스타일 클래스에서는 작동하지 않습니다 .
>>> class Test(): pass
>>> t = Test()
>>> type(t) is t.__class__
False
>>> type(t)
instance
내가 아는 한, 후자는 전자를 수행하는 더 좋은 방법입니다.
파이썬은 고려에서 실제로 이상한 아니다 repr(x)
, 어떤 단지 전화 x.__repr__()
또는 len(x)
, 단지 전화를 x.__len__()
. Python은 다양한 클래스에서 사용할 가능성이 높은 일반 함수에 내장 기능을 사용하는 것을 선호하며 일반적으로 __x__()
메서드 를 호출하여이를 구현 합니다.
참고 URL : https://stackoverflow.com/questions/10386166/python-self-class-vs-typeself
반응형
'program story' 카테고리의 다른 글
쓰기 손실, 데이터 가용성과 같은 요인에 대비하여 기본 데이터 저장소로서 ElasticSearch의 안정성 (0) | 2020.12.02 |
---|---|
추적 참조 란 무엇입니까? (0) | 2020.12.02 |
C # 용 CSS 파서가 있습니까? (0) | 2020.12.02 |
QThread를 구현하는 올바른 방법은 무엇입니까… (예제를보십시오…) (0) | 2020.12.02 |
.NET 응용 프로그램의 비정상적인 잘못된 Viewstate 문제 (0) | 2020.12.02 |