zoukankan      html  css  js  c++  java
  • python @property

    class Person(object):
    def __init__(self, name, age):
    #属性直接对外暴露
    #self.age = age
    #限制访问
    self.__age = age
    self.__name = name
    '''
    def getAge(self):
    return self.__age
    def setAge(self, age):
    if age < 0:
    age = 0
    self.__age = age
    '''
    #方法名为受限制的变量去掉双下划綫
    @property
    def age(self):
    return self.__age
    @age.setter #去掉下划线.setter
    def age(self, age):
    if age < 0:
    age = 0
    self.__age = age

    @property
    def name(self):
    return self.__name
    @name.setter # 去掉下划线.setter
    def name(self, name):
    self.__name = name

    per = Person("sunck", 18)

    #属性直接对外暴露
    #不安全,没有数据的过滤
    #per.age = -10
    #print(per.age)

    #使用限制访问,需要自己写set和get方法才能访问
    #per.setAge(15)
    #print(per.getAge())

    per.age = -100 #相当于调用setAage
    print(per.age) #相当于调用getAge
    print(per.name)

    #property:可以让你对受限制访问的属性使用点语法
  • 相关阅读:
    sys模块详解
    os模块详解2
    tyvj 1203 机器分配
    洛谷 P1496 火烧赤壁
    P1204 [USACO1.2]挤牛奶Milking Cows
    bzoj 2120 数颜色
    P2056 采花
    P1972 [SDOI2009]HH的项链
    9.20模拟赛
    P2709 小B的询问
  • 原文地址:https://www.cnblogs.com/pygo/p/12323609.html
Copyright © 2011-2022 走看看