source

개체를 매개 변수로 사용하는 클래스

bestscript 2023. 7. 19. 22:47

개체를 매개 변수로 사용하는 클래스

파이썬 코드를 스칼라 코드로 번역하려고 합니다.그래서 저는 파이썬의 완전한 초보자입니다.

하지만 왜 어떤 클래스들은 객체를 매개 변수로 가지고 있으면서도 절대 명시적으로 사용하지 않는 것일까요?애초에 그것을 매개 변수로 삼은 이유는 무엇입니까?

예:

class Table(object)

시간 내 주셔서 감사합니다.

Python2에서는 다음을 선언합니다.Table새로운 스타일의 클래스가 될 수 있습니다("delay" 클래스와 반대).Python3에서는 모든 클래스가 새로운 스타일의 클래스이므로 더 이상 필요하지 않습니다.

새로운 스타일 클래스에는 클래식 클래스에 부족한 몇 가지 특별한 속성이 있습니다.

class Classic: pass
class NewStyle(object): pass

print(dir(Classic))
# ['__doc__', '__module__']

print(dir(NewStyle))
# ['__class__', '__delattr__', '__dict__', '__doc__', '__format__', '__getattribute__', '__hash__', '__init__', '__module__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__']

또한 속성과 슈퍼는 클래식 클래스에서 작동하지 않습니다.

Python2에서는 모든 클래스를 새로운 스타일의 클래스로 만드는 것이 좋습니다.(표준 라이브러리의 많은 클래스는 하위 호환성을 위해 여전히 클래식 클래스입니다.)

일반적으로, 다음과 같은 진술에서.

class Foo(Base1, Base2):

Foo기본 클래스에서 상속하는 클래스로 선언되고 있습니다.Base1그리고.Base2.

object파이썬의 모든 클래스의 어머니입니다.새로운 스타일의 클래스이므로 다음에서 상속합니다.object만든다Table신식 수업

Table클래스가 클래스를 확장하고 있습니다.object논쟁이 아닙니다.연장하고자 하는 이유object클래스를 새로운 스타일의 클래스로 바꾸는 것입니다.확장을 명시적으로 지정하지 않은 경우objectPython 3까지는 기본적으로 오래된 스타일의 클래스입니다.(Python 3 이후로 모든 클래스는 새로운 스타일입니다. 명시적으로 확장하든object그렇지 않을 경우.)

새로운 스타일과 오래된 스타일의 수업에 대한 자세한 내용은 이 질문을 참조하십시오.

Python의 경우 클래스 테이블과 클래스 테이블(객체)이 다르지 않습니다.

매개 변수가 아니라 개체(다른 많은 언어와 마찬가지로 기본 클래스)에서 확장됩니다.

"객체"에 정의된 모든 것을 상속한다는 것입니다.이것이 기본 동작입니다.

참고로 "새로운 스타일"과 "이전 스타일"의 클래스 구분은 Python 2.x에 고유합니다. 3.x에서는 모든 클래스가 "새로운 스타일"입니다.

object는 python에서 정의된 클래스 개체의 가장 기본적인 유형입니다.개체의 속성은 아래와 같습니다.

**>>> dir(개체)

['class', 'delattr', 'format', 'get attribute', 'get attribute', 'init', 'new', 'new', 'context_ex', 'repr', 'setattr', 'sizeof', 'str', 'subclasshook']**

따라서 테이블(객체)은 상속일 뿐입니다.!

클래스 이름(객체): 2) 클래스 이름:둘 다 같지만 첫 번째 것은 글쓰기 면에서 꽤 낫고, 다른 수업을 다른 수업으로 이어받으면서 더 좋아 보이고, 동질적으로 보입니다.

어떻게 똑같습니까? 그래서, 파이썬의 모든 것이 객체 아래에 있다는 것은 파이썬의 모든 것이 객체의 속성을 가지고 있다는 것을 의미합니다. 쓰거나 말거나 이해하지 못하더라도 말입니다.처음에 우리는 그것을 두 번째에 명시적으로 말하지 않았습니다.

언급URL : https://stackoverflow.com/questions/7375595/class-with-object-as-a-parameter