> 백엔드 개발 > 파이썬 튜토리얼 > 귀하의 기사에 적합한 몇 가지 질문 기반 제목은 다음과 같습니다. * 클래스 속성과 인스턴스 속성: Python에서 변수를 어디에서 정의해야 합니까? * Python 객체 지향 프로그래밍: 클래스 속성을 사용하는 경우

귀하의 기사에 적합한 몇 가지 질문 기반 제목은 다음과 같습니다. * 클래스 속성과 인스턴스 속성: Python에서 변수를 어디에서 정의해야 합니까? * Python 객체 지향 프로그래밍: 클래스 속성을 사용하는 경우

DDD
풀어 주다: 2024-10-27 18:31:30
원래의
767명이 탐색했습니다.

Here are a few question-based titles that fit your article:

* Class vs. Instance Attributes: Where Should You Define Variables in Python?
* Python Object-Oriented Programming: When to Use Class Attributes and Instance Attributes?
* Understanding the Diff

클래스 및 인스턴스 속성: __init__() 내부 및 외부 변수

객체 지향 프로그래밍에서는 클래스 속성과 인스턴스 속성이 매우 중요합니다. 역할. 하지만 변수를 __init__() 메서드 내부에 배치하는 것과 외부에 배치하는 것의 차이점은 무엇입니까? 이 차이점을 자세히 살펴보겠습니다.

주어진 코드 조각을 고려하십시오.

<code class="python">class WithClass ():
    def __init__(self):
        self.value = "Bob"
    def my_func(self):
        print(self.value)

class WithoutClass ():
    value = "Bob"

    def my_func(self):
        print(self.value)</code>
로그인 후 복사

__init__() 외부 변수

__init__() 외부에서 정의된 변수 클래스에 속합니다. 해당 클래스에서 생성된 모든 인스턴스에 공통됩니다. 예를 들어, WithoutClass 클래스에서:

<code class="python">WithoutClass.value = "Bob"</code>
로그인 후 복사

WithoutClass 클래스의 인스턴스를 통해 이 변수에 액세스하면 동일한 값 "Bob"이 반환됩니다.

Variables Inside __init__()

반대로 self.라는 접두사가 붙은 __init__() 내부에 정의된 변수는 각 개별 개체에 속합니다. __init__() 내에서 변수를 설정하면 해당 객체에 특정한 인스턴스 속성이 됩니다.

<code class="python">WithClass().value = "Alice"  # Unique to this instance</code>
로그인 후 복사

WithClass 클래스의 다른 인스턴스에서 이 동일한 변수에 액세스하면 다른 값이 생성됩니다.

<code class="python">WithClass().value = "Bob"  # Unique to this instance</code>
로그인 후 복사

의미

변수 선언 위치 선택은 해당 동작에 영향을 미칩니다.

  • 클래스 전체 변수: __init__() 외부에 변수를 배치하면 모든 인스턴스에서 공유되는 클래스 속성이 됩니다. 이는 모든 객체에 일관되게 적용되는 전역 설정이나 속성에 유용할 수 있습니다.
  • 인스턴스별 변수: self를 사용하여 __init__() 내부에 변수를 정의합니다. 접두사는 인스턴스별 속성을 생성합니다. 각 개체에는 해당 변수의 자체 복사본이 있어 개별 개체에 대한 사용자 정의가 가능합니다.

위 내용은 귀하의 기사에 적합한 몇 가지 질문 기반 제목은 다음과 같습니다. * 클래스 속성과 인스턴스 속성: Python에서 변수를 어디에서 정의해야 합니까? * Python 객체 지향 프로그래밍: 클래스 속성을 사용하는 경우의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿