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())
    # 如何让外界在使用的时候和原来是一样的 这边就需要用到装饰器
  • 相关阅读:
    Mysql日志管理
    Mysql 安全和DCL语句
    Mysql DDL语句之视图
    Mysql增删改查(DML、DQL)
    Mysql操作之部分DDL语句
    如何做事情
    temp
    asp.net入门
    希望尽快回忆起来
    需求?
  • 原文地址:https://www.cnblogs.com/SmartCat994/p/12306937.html
Copyright © 2011-2022 走看看