>백엔드 개발 >파이썬 튜토리얼 >Python에서 정적 변수와 메서드는 어떻게 작동합니까?

Python에서 정적 변수와 메서드는 어떻게 작동합니까?

Susan Sarandon
Susan Sarandon원래의
2024-12-17 19:05:12147검색

How Do Static Variables and Methods Work in Python?

Python에서 정적 변수 및 메서드 만들기

Python에서는 정적 변수와 메서드를 각각 클래스 변수와 클래스 메서드라고 합니다. 이러한 엔터티는 클래스 수준에서 정의되며 객체를 인스턴스화하지 않고도 액세스하고 조작할 수 있습니다.

클래스 변수

클래스 변수는 클래스 정의 내, 메서드 외부에서 선언됩니다. . 클래스의 모든 인스턴스에서 공유되며 클래스 이름 뒤에 점이 표시되어 액세스할 수 있습니다. 예를 들면 다음과 같습니다.

class MyClass:
    i = 3

print(MyClass.i)  # Outputs 3

클래스 메서드

클래스 메서드는 클래스 내에 정의된 함수이지만 인스턴스 메서드와는 달리 클래스 자체에서 작동합니다. 인스턴스에. @staticmethod 데코레이터를 사용하여 선언됩니다.

class MyClass:
    @staticmethod
    def f(arg1, arg2, ...): ...

클래스 메서드는 객체 없이 클래스 이름을 사용하여 직접 호출할 수 있습니다. 일반적으로 유틸리티 함수나 유형 검사와 같은 개별 인스턴스와 독립적인 작업을 수행하는 데 사용됩니다.

정적 메서드보다 클래스 메서드

일부 프로그래머는 정적 메서드보다 클래스 메서드를 선호합니다. 클래스 유형을 첫 번째 인수로 받을 수 있기 때문입니다. 이를 통해 메소드는 클래스별 정보에 액세스하고 더 복잡한 작업을 수행할 수 있습니다.

class MyClass:
    @classmethod
    def g(cls, arg1, arg2, ...): ...

클래스 변수와 클래스 메소드:

class MyClass:
    count = 0

    @classmethod
    def get_count(cls):
        return cls.count

이 클래스에는 생성된 객체 수를 추적하는 클래스 변수 개수와 클래스 메소드가 포함되어 있습니다. count의 현재 값을 검색하는 get_count입니다. 이를 사용하려면 다음과 같이 작성할 수 있습니다.

MyClass.count += 1  # Increment the class variable
print(MyClass.get_count())  # Call the class method to get the count

클래스 변수와 메소드는 클래스의 여러 인스턴스 간에 공유 데이터와 기능을 정의하고 사용하는 편리한 방법을 제공하여 코드 구성을 단순화하고 코드 재사용성을 향상시킵니다.

위 내용은 Python에서 정적 변수와 메서드는 어떻게 작동합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.