zoukankan      html  css  js  c++  java
  • 私有化

    # 私有化
    # 封装的一个概念:1.私有化你的属性部分 2.定义公有的set和get方法
    # __属性就是将一个属性私有化,私:专属于,有:出了这个结构体,谁也访问不了。只限制于类中


    class Student:
    # __age = 18 # 类属性私有化

    def __init__(self, name, age):
    self.__name = name
    self.__age = age
    self.__socre = 59

    # get:是为了取值

    # 定义成函数还有一个好处就是可以在函数里面加各种各样的判断,变成了更加灵活
    def getAge(self):
    return self.__age

    # set:是为了赋值

    def setAge(self, age):
    self.__age = age

    def __str__(self):
    return '姓名是:{}年龄是:{}考试分数是:{}'.format(str(self.__age), self.__name, self.__socre)


    a = Student(18, 'zzh')
    print(a)
    a.setAge(200)
    print(a)
    print(a.getAge())
    # 需要定义一个公有的set和get,不然值无法改变了

    # 在开发中,我们经常看到的一些私有化的处理
    # 装饰器来完成 @property


    class Student:
    def __init__(self, name, age):
    self.__name = name
    self.__age = age

    @property
    def age1(self):
    return self.__age
    #这就好比先要有set再有get一样
    @age1.setter
    def age1(self, age):
    self.__age = age

    # def setAge(self, age):
    # if 0 < age < 100:
    # self.__age = age
    # else:
    # print('年龄不正确')
    #
    # def getAge(self):
    # return self.__age

    def __str__(self):
    return '姓名是{}年龄是{}'.format(self.__name, self.__age)


    a = Student('zzh', 55)
    a.age1 = 50
    print(a.age1)
    # 私有化赋值
    # a.setAge(30)
    # print(a.getAge())
    # 如何让外界在使用的时候和原来是一样的 这边就需要用到装饰器
  • 相关阅读:
    工具类-ApplicationContextUtil
    银行联行号-全国地区码
    银行联行号-银行编码(联行号前3位)
    前端防止 JS 调试技巧
    Vue基础框架
    关于5G手机使用4G套餐扫盲
    nginx高级-前端必会
    懒人npm运行和打包命令
    关于虚拟专用网络的一些经验
    JS加密解密
  • 原文地址:https://www.cnblogs.com/SmartCat994/p/12306937.html
Copyright © 2011-2022 走看看