반응형
Python 3.x에서 Python의 객체를 상속할 필요가 있습니까, 아니면 유용합니까?
이전 Python 버전에서는 클래스를 만들 때 다음에서 상속할 수 있습니다.object이것은 당신의 클래스를 새로운 스타일의 클래스로 만들 수 있는 특별한 내장 파이썬 요소를 이해하는 것입니다.
최신 버전(> 3.0 및 2.6)은 어떻습니까?나는 구글에서 검색했습니다.object(명백한 이유로) 저는 너무 많은 결과를 얻습니다.
에서 상속할 필요가 없습니다.object파이썬 3에서 새로운 스타일을 갖는 것.모든 수업은 새로운 스타일입니다.
나는 이것이 오래된 질문이라는 것을 알지만, 파이썬 3에서도 이 두 가지가 완전히 같지 않다는 것을 주목할 필요가 있습니다.
다음에서 명시적으로 상속하는 경우object당신이 실제로 하고 있는 것은 상속받는 것입니다.builtins.object 그것이 그 당시에 무엇을 가리키는지와 상관없이.
따라서 어떤 이유에서인지 객체를 재정의하는 (매우 이상한) 모듈이 있을 수 있습니다.이 첫 번째 모듈을 "newobj.py "이라고 부릅니다.
import builtins
old_object = builtins.object # otherwise cyclic dependencies
class new_object(old_object):
def __init__(self, *args, **kwargs):
super(new_object, self).__init__(*args, **kwargs)
self.greeting = "Hello World!"
builtins.object = new_object #overrides the default object
다음은 다른 파일("klasses.py ")입니다.
class Greeter(object):
pass
class NonGreeter:
pass
그러면 실제로 실행할 수 있는 세 번째 파일에서 다음 작업을 수행할 수 있습니다.
import newobj, klasses # This order matters!
greeter = klasses.Greeter()
print(greeter.greeting) # prints the greeting in the new __init__
non_greeter = klasses.NonGreeter()
print(non_greeter.greeting) # throws an attribute error
따라서 개체에서 명시적으로 상속되는 경우에는 암묵적인 상속을 허용하는 경우와는 다른 동작을 하게 됩니다.
언급URL : https://stackoverflow.com/questions/1238606/is-it-necessary-or-useful-to-inherit-from-pythons-object-in-python-3-x
반응형
'programing' 카테고리의 다른 글
| 스타일 설정기에서 혼합 동작을 추가하는 방법 (0) | 2023.05.04 |
|---|---|
| 부서( / )가 postgresql에서 내 대답을 하지 않음 (0) | 2023.05.04 |
| NSTimer 사용 방법 (0) | 2023.05.04 |
| Azure Function 구성에 APPINSIGHTS_INSTRINGKEY와 APPLICATIONINSIGHT_CONNECTION_STRING이 모두 필요한 이유는 무엇입니까? (0) | 2023.05.04 |
| 이클립스에서 안드로이드 앱의 아이콘을 변경하는 방법은 무엇입니까? (0) | 2023.04.29 |