zoukankan      html  css  js  c++  java
  • python中类的私有化

    # 类的私有化
    # 封装:1.私有化属性 2.定义共有set和get方法
    # __属性名,就是将属性私有化,访问范围仅仅限于类中
    
    
    class Person:
        def __init__(self, name, age):
            self.__name = name
            self.__age = age
            self.__score = 59
    
        def __str__(self):
            return '姓名:{},年龄:{},考试分数:{}'.format(self.__name, self.__age, self.__score)
    
        # 定义共有的set和get方法
    
        # set是为了赋值
        def setName(self, name):
            self.__name = name
    
        def setAge(self, age):
            self.__age = age
    
        # get是为了取值
        def getName(self):
            return self.__name
    
        def getAge(self):
            return self.__age
    
    
    p = Person('张三', 30)
    
    
    # print(dir(p))
    # p.setName('李四')
    # print(p.getName())
    # print(p.getAge())
    
    
    #  使用装饰器实现私有化
    class Person2:
        def __init__(self, name, age):
            self.__name = name
            self.__age = age
    
        def __str__(self):
            return '姓名:{},年龄:{}'.format(self.__name, self.__age)
    
        # 现有getXXX
        @property
        def name(self):
            return self.__name
    
        # 再有setXXX,因为set是依赖get的
        @name.setter
        def name(self, name):
            if len(name) > 6:
                self.__name = name
            else:
                print('名字不符合规范')
    
        @property
        def age(self):
            return self.__age
    
        @age.setter
        def age(self, age):
            self.__age = age
    
    
    p2 = Person2('王五', 40)
    print(p2)
    p2.name = 'zhaoqian'
    print(p2)
    
    
    ------学习贵在分享,贵在记录,贵在总结。
  • 相关阅读:
    以太坊 生成助记词和infuru插件
    结束端口占用
    web3无法安装的额解决方案-----yarn命令安装web3
    npm无法安装全局web3的问题
    censeOs账户
    linux go环境安装
    一款非常好用的chrome插件Postman
    js页面刷新的方法location.reload()
    学会使用DNSPod,仅需三步
    wordpress博客服务器迁移过程中总结
  • 原文地址:https://www.cnblogs.com/kevin1220/p/14422814.html
Copyright © 2011-2022 走看看