>  기사  >  백엔드 개발  >  Python 인터뷰 준비: 클래스 메서드와 정적 메서드 설명

Python 인터뷰 준비: 클래스 메서드와 정적 메서드 설명

PHPz
PHPz원래의
2024-08-09 09:30:42371검색

Python Interview Preparation: Class Methods vs Static Methods Explained

Python에서는 클래스 내의 메서드를 인스턴스 메서드, 클래스 메서드, 정적 메서드로 분류할 수 있습니다. 각각은 고유한 목적을 갖고 클래스와 해당 인스턴스에 대한 다양한 수준의 액세스를 제공합니다. 이 블로그에서는 클래스 메서드와 정적 메서드, 사용 방법, 접할 수 있는 일반적인 인터뷰 질문을 살펴보겠습니다.

인스턴스 메소드

클래스 메서드와 정적 메서드를 살펴보기 전에 인스턴스 메서드를 간략하게 요약해 보겠습니다.

  • 인스턴스 메서드: 이는 클래스에서 가장 일반적인 메서드이며 개체의 상태에 액세스하거나 수정하는 데 사용됩니다. 클래스의 인스턴스를 나타내는 첫 번째 매개변수로 self를 사용합니다.
으아악

수업 방법

클래스 메서드는 클래스 인스턴스뿐만 아니라 클래스 자체에 액세스할 수 있는 메서드입니다. 클래스를 나타내는 첫 번째 매개변수로 cls를 사용합니다. @classmethod 데코레이터를 사용하여 정의됩니다.

왜 클래스 메소드를 사용하는가?

  • 대체 생성자를 생성하려면

  • 클래스 수준 속성에 액세스하거나 수정하려면

예: 대체 생성자

으아악

이 예에서 from_birth_year는 태어난 연도부터 나이를 계산하고 Person 인스턴스를 생성하는 대체 생성자입니다.

예: 클래스 속성 수정

으아악

이 예에서 Change_company는 company_name 클래스 속성을 변경하는 클래스 메서드입니다.

정적 메서드

정적 메서드는 클래스 또는 인스턴스별 데이터에 액세스하거나 수정하지 않습니다. 이는 클래스에 속하고 @staticmethod 데코레이터를 사용하여 정의되는 유틸리티 메서드입니다.

정적 메서드를 사용하는 이유는 무엇입니까?

  • 클래스 및 인스턴스 데이터와 독립적으로 작동하는 유틸리티 함수를 정의합니다.

  • 클래스 네임스페이스 내에서 코드를 체계적으로 정리합니다.

예: 유틸리티 함수

으아악

이 예에서 add는 클래스 또는 인스턴스 데이터와 독립적으로 추가를 수행하는 정적 메서드입니다.

방법 비교

  • 인스턴스 메서드: 클래스(self)의 인스턴스에서 작동합니다.

  • 클래스 메서드: 클래스 자체(cls)에서 작동합니다.

  • 정적 메서드: 클래스 또는 인스턴스별 데이터에 대해 작업을 수행하지 마세요.

수업 방법과 정적 방법에 대한 인터뷰 질문

질문 1: 클래스 메서드와 정적 메서드의 차이점을 설명하세요.

  • 클래스 메서드: cls를 첫 번째 매개변수로 사용하여 클래스 자체에서 작동합니다. 클래스 수준 데이터를 수정할 수 있습니다.

  • 정적 메서드: 클래스 및 인스턴스별 데이터와 독립적입니다. cls나 self를 첫 번째 매개변수로 사용하지 않습니다.

질문 2: 클래스 메소드와 정적 메소드를 사용하여 Book 클래스를 구현하십시오.

으아악

이 예에서 from_string은 문자열에서 Book 객체를 생성하는 대체 생성자(클래스 메서드)이고, is_valid_year는 연도가 유효한지 확인하는 정적 메서드입니다.

질문 3: 클래스 메서드를 대체 생성자로 사용하는 이유는 무엇입니까?

대체 생성자로서의 클래스 메서드는 다양한 종류의 입력 또는 시나리오에서 인스턴스를 생성하는 유연성을 제공하여 코드를 더 읽기 쉽게 만들고 객체 생성 논리를 위한 단일 위치를 유지합니다.

요약

  • 인스턴스 메서드: 클래스 인스턴스에서 작동하고 인스턴스별 데이터를 수정할 수 있습니다.

  • 클래스 메서드: cls를 첫 번째 매개변수로 사용하여 클래스 자체에 대해 작업하고 클래스 수준 데이터를 수정할 수 있습니다.

  • 정적 메서드: 클래스 또는 인스턴스별 데이터에 대해 작동하지 않으며 유틸리티 기능에 사용됩니다.

이러한 방법을 효과적으로 이해하고 활용하면 Python에서 보다 체계적이고 유연한 객체 지향 코드를 작성할 수 있습니다.


위 내용은 Python 인터뷰 준비: 클래스 메서드와 정적 메서드 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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