클래스 속성
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의 속성 액세스 제어는 프로그래머의 인식에 따라 달라집니다. 왜 그런 말을 해? 아래 예를 살펴보세요.
그림을 주의 깊게 보세요. 이중 밑줄이 실제 비공개 속성이 아니라고 말하는 이유는 무엇인가요? 다음 예를 살펴보고 다음 예를 사용하여 검증해 보겠습니다.
#!/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)
출력 결과는 아래와 같습니다.