클래스 속성

1. 클래스에서 직접 속성을 정의하세요.

클래스의 속성을 정의하세요. 물론 가장 간단하고 직접적인 방법은 클래스에서 속성을 정의하는 것입니다. 예:

class UserInfo(object):
    name='两点水'

2.

그러므로 개체를 구성할 때 속성을 정의하는 이름입니다.

class UserInfo(object):
    def __init__(self,name):
        self.name=name

3. 속성 접근 제어

자바에는 속성에 대한 접근을 제어할 수 있는 퍼블릭(public) 속성과 프라이빗(private) 속성이 있습니다. 그렇다면 Python에는 속성 액세스 제어가 있습니까?

일반적으로 두 개의 밑줄로 시작하는 __private_attrs를 사용하여 속성이 비공개이고 클래스 외부에서 사용하거나 직접 액세스할 수 없음을 선언합니다. 클래스 내부의 메소드에서 self.__private_attrs를 사용할 때.

왜 일반적인 상황만 이야기할 수 있나요? 실제로 Python은 개인 속성과 같은 기능을 제공하지 않기 때문입니다. 그러나 Python의 속성 액세스 제어는 프로그래머의 인식에 따라 달라집니다. 왜 그런 말을 해? 아래 예를 살펴보세요.

2b7f8cc7d68ea31db222e5ad19ad696.png

그림을 주의 깊게 보세요. 이중 밑줄이 실제 비공개 속성이 아니라고 말하는 이유는 무엇인가요? 다음 예를 살펴보고 다음 예를 사용하여 검증해 보겠습니다.

#!/usr/bin/env python
# -*- coding: UTF-8 -*-
class UserInfo(object):
    def __init__(self, name, age, account):
        self.name = name
        self._age = age
        self.__account = account
    def get_account(self):
        return self.__account
if __name__ == '__main__':
    userInfo = UserInfo('两点水', 23, 347073565);
    # 打印所有属性
    print(dir(userInfo))
    # 打印构造函数中的属性
    print(userInfo.__dict__)
    print(userInfo.get_account())
    # 用于验证双下划线是否是真正的私有属性
    print(userInfo._UserInfo__account)

출력 결과는 아래와 같습니다.

c8042ea045950ea6cab0606f2de1873.png

지속적인 학습
  • 코스 추천
  • 코스웨어 다운로드
현재 코스웨어를 다운로드할 수 없습니다. 현재 직원들이 정리하고 있습니다. 앞으로도 본 강좌에 많은 관심 부탁드립니다~