python 대상 입문 을 위 한 getter 와 setter,개인 변수

2579 단어 python
python 에 서 는 자바 와 같은 get set 방법 이 없습니다.만약 에 우리 가 다른 사람 에 게 특정한 속성 을 사용 하 게 하려 고 할 때 추가 적 인 것 을 추가 하거나 이 매개 변 수 를 지정 하 는 유형 을 강제로 지정 하려 면 다음 과 같은 주석 으로@property 와@xx.setter 를 사용 할 수 있 습 니 다.그 중에서 xx 는 이 변수의 이름 을 표시 합 니 다.@property 수식 방법 은 자바 의 get 방법 과 유사 합 니 다[email protected] 수식 방법 은 자바 의 set 방법 과 유사 합 니 다.이 두 가지 방법 에 다른 논 리 를 추가 할 수 있 습 니 다.다음 과 같 습 니 다.(object 류 를 계승 해 야 합 니 다)
#!/usr/bin/python
# -*- coding: UTF-8 -*-
# @Time    : 17/11/15   3:20
# @Author  : lijie
# @File    : mytest05.py

class Person(object):

    __privateVal=100

    def __init__(self, name):
        self.name = name

    @property
    def name(self):
        print("getter    ")
        return self._name

    @name.setter
    def name(self, name):
        print("setter    ")
        if not isinstance(name, str):
            raise TypeError("     ,       ")
        self._name = name

person = Person("Tom")
print(person.name)

##           
# print(person.__privateVal)

##                     。。
print(person._Person__privateVal)
person._Person__privateVal=200
print(person._Person__privateVal)

python 에서val 은 개인 변 수 를 표시 합 니 다.이 클래스 에서 만 사용 할 수 있 지만 object.className__attrName 에서 값 을 가 져 옵 니 다.하지만 값 을 부여 하면 이 대상 에 게 유지 보 수 를 부여 합 니 다className__attrName 에(대상 이 동적 으로 추 가 된 구성원 변수 에 해당 하 는className__attrName)개인 변수 가 아 닙 니 다.

좋은 웹페이지 즐겨찾기