찾다
  • 로그인
  • 가입
비밀번호 재설정 성공

당신이 관심을 갖고 있는 프로젝트를 팔로우하고 그들에 관한 최신 뉴스를 맛보세요

클래스 속성

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

새로운 파일
시사 Clear
  • 코스 추천
  • 코스웨어 다운로드