찾다
백엔드 개발파이썬 튜토리얼Python 클래스 메서드와 인스턴스 메서드의 차이점

Python에서 더 일반적인 메서드 유형은 인스턴스 메서드와 클래스 메서드입니다. 그것들은 어떻게 정의됩니까? 어떻게 부르나요? 차이점과 기능은 무엇입니까? 아래를 참조하세요.

Python 클래스 메서드와 인스턴스 메서드의 차이점

우선, 이 메소드들은 클래스에 정의되어 있습니다. 먼저 정의하고 호출하는 방법에 대해 간단히 설명하겠습니다. (PS: 인스턴스 객체는 가장 큰 권한을 갖습니다.)

인스턴스 방법 (권장 학습: Python 비디오 튜토리얼)

정의: 첫 번째 매개변수는 인스턴스 객체여야 하며 매개변수 이름은 일반적으로 " self", pass됨 인스턴스의 속성과 메서드를 전달합니다(클래스의 속성과 메서드도 전달할 수 있음).

Call: 인스턴스 개체에 의해서만 호출될 수 있습니다.

클래스 메소드

정의: @classmethod 데코레이터를 사용하세요. 첫 번째 매개변수는 현재 클래스 객체여야 합니다. 매개변수 이름은 일반적으로 클래스의 속성과 메서드가 전달되는 "cls"로 동의됩니다(인스턴스의 속성과 메서드는 전달할 수 없음). 인스턴스 객체와 클래스 객체를 모두 호출할 수 있습니다.

인스턴스 메서드

간단히 말하면, 인스턴스 메서드는 클래스의 인스턴스에서 사용할 수 있는 메서드입니다. 여기에는 설명이 별로 없습니다.

클래스 메소드

데코레이터 @classmethod를 사용하세요.

원칙적으로 클래스 메서드는 클래스 자체를 객체로 작동하는 메서드입니다. 메소드가 있고 클래스 자체를 객체로 사용하여 이 메소드를 호출하는 것이 논리적으로 더 합리적이라면 이 메소드를 클래스 메소드로 정의할 수 있습니다. 또한 상속이 필요한 경우에는 클래스 메소드로 정의할 수도 있습니다.

학생 수업과 수업 수업이 있다고 가정해 보겠습니다. 구현하려는 기능은 다음과 같습니다.

수업의 학생 수를 늘리는 작업을 수행하고 수업의 총 인원을 구합니다. 클래스는 클래스 클래스에서 상속되며 학생이 인스턴스화될 때마다 클래스 크기가 늘어날 수 있습니다.

마지막으로 일부 학생을 정의하고 클래스의 총 학생 수를 얻고 싶습니다.

class ClassTest(object):
    __num = 0

    @classmethod
    def addNum(cls):
        cls.__num += 1

    @classmethod
    def getNum(cls):
        return cls.__num

    # 这里我用到魔术方法__new__,主要是为了在创建实例的时候调用累加方法。
    def __new__(self):
        ClassTest.addNum()
        return super(ClassTest, self).__new__(self)


class Student(ClassTest):
    def __init__(self):
        self.name = ''

a = Student()
b = Student()
print(ClassTest.getNum())

Python 관련 기술 기사를 더 보려면

Python Tutorial

칼럼을 방문하여 알아보세요!

위 내용은 Python 클래스 메서드와 인스턴스 메서드의 차이점의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
목록과 배열 사이의 선택은 큰 데이터 세트를 다루는 파이썬 응용 프로그램의 전반적인 성능에 어떤 영향을 미칩니 까?목록과 배열 사이의 선택은 큰 데이터 세트를 다루는 파이썬 응용 프로그램의 전반적인 성능에 어떤 영향을 미칩니 까?May 03, 2025 am 12:11 AM

forhandlinglargedatasetsinpython, usenumpyarraysforbetterperformance.1) numpyarraysarememory-effic andfasterfornumericaloperations.2) leveragevectorization foredtimecomplexity.4) managemoryusage withorfications data

Python의 목록 대 배열에 대한 메모리가 어떻게 할당되는지 설명하십시오.Python의 목록 대 배열에 대한 메모리가 어떻게 할당되는지 설명하십시오.May 03, 2025 am 12:10 AM

inpython, listsusedyammoryAllocation과 함께 할당하고, whilempyarraysallocatefixedMemory.1) listsAllocatemememorythanneedInitiality.

파이썬 어레이에서 요소의 데이터 유형을 어떻게 지정합니까?파이썬 어레이에서 요소의 데이터 유형을 어떻게 지정합니까?May 03, 2025 am 12:06 AM

Inpython, youcansspecthedatatypeyfelemeremodelerernspant.1) usenpynernrump.1) usenpynerp.dloatp.ploatm64, 포모 선례 전분자.

Numpy 란 무엇이며 Python의 수치 컴퓨팅에 중요한 이유는 무엇입니까?Numpy 란 무엇이며 Python의 수치 컴퓨팅에 중요한 이유는 무엇입니까?May 03, 2025 am 12:03 AM

numpyissentialfornumericalcomputinginpythonduetoitsspeed, memory-efficiency 및 comperniveMathematicaticaltions

'연속 메모리 할당'의 개념과 배열의 중요성에 대해 토론하십시오.'연속 메모리 할당'의 개념과 배열의 중요성에 대해 토론하십시오.May 03, 2025 am 12:01 AM

contiguousUousUousUlorAllocationScrucialForraysbecauseItAllowsOfficationAndFastElementAccess.1) ItenableSconstantTimeAccess, o (1), DuetodirectAddressCalculation.2) Itimprovesceeffiency theMultipleementFetchespercacheline.3) Itsimplififiesmomorym

파이썬 목록을 어떻게 슬라이스합니까?파이썬 목록을 어떻게 슬라이스합니까?May 02, 2025 am 12:14 AM

slicepaythonlistisdoneusingthesyntaxlist [start : step : step] .here'showitworks : 1) startistheindexofthefirstelementtoinclude.2) stopistheindexofthefirstelemement.3) stepisincrementbetwetweentractionsoftortionsoflists

Numpy Array에서 수행 할 수있는 일반적인 작업은 무엇입니까?Numpy Array에서 수행 할 수있는 일반적인 작업은 무엇입니까?May 02, 2025 am 12:09 AM

NumpyAllowsForVariousOperationsOnArrays : 1) BasicArithmeticLikeadDition, Subtraction, A 및 Division; 2) AdvancedOperationsSuchasmatrixmultiplication; 3) extrayintondsfordatamanipulation; 5) Ag

파이썬으로 데이터 분석에 어레이가 어떻게 사용됩니까?파이썬으로 데이터 분석에 어레이가 어떻게 사용됩니까?May 02, 2025 am 12:09 AM

Arraysinpython, 특히 Stroughnumpyandpandas, areestentialfordataanalysis, setingspeedandefficiency

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

ZendStudio 13.5.1 맥

ZendStudio 13.5.1 맥

강력한 PHP 통합 개발 환경

MinGW - Windows용 미니멀리스트 GNU

MinGW - Windows용 미니멀리스트 GNU

이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

에디트플러스 중국어 크랙 버전

에디트플러스 중국어 크랙 버전

작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음