• python 访问控制


    访问控制指的是:控制类对象的属性和方法在类对象的外部是否可以进行直接访问。

    如果在类对象的某个属性或方法前添加两个下划线 __ ,那么在类对象外部就不能直接访问该属性或者方法了,
    这个成员就变成了一个私有成员(private),私有成员只能在类的内部访问,外部无法访问。

    class MyClass(object):
        def __init__(self, name, age):
            self.__name = name
            self.__age = age
    
        def get_info(self):
            print('%s: %s' % (self.__name, self.__age))
    
    
    mc = MyClass("tom", 22)
    mc.get_info()  # tom: 22
    
    mc.__name  # AttributeError: 'MyClass' object has no attribute '__name'
    

    如果外部要对 __name 和 __age 进行访问和修改,那么可以在类的内部创建外部可以访问的 get_name 和 get_age 方法。

    class MyClass(object):
        def __init__(self, name, age):
            self.__name = name
            self.__age = age
    
        def get_info(self):
            print('%s: %s' % (self.__name, self.__age))
    
        def get_name(self):
            print(self.__name)
    
        def get_age(self):
            print(self.__age)
    
    
    mc = MyClass("tom", 22)
    mc.get_name()  # tom
    mc.get_age()  # 22
    
    

    这样设计,提供了外部访问接口的同时,也对数据进行了保护。

    在get_name以及get_age 等方法中,可以额外添加其他功能(数据的检测,处理等),作用很大。



    ------分界线------

    每个人在自己的擅长领域,都有一些独特的知识、能力。
    积累到某个阶段,他必然会获得收益。
    
    当感到焦虑的时候,思考 接下来该做什么,能让自己变得更好 ,才是最重要的问题。
    但是又没有速成的方法,所以只能一点点积累!
    
    
  • 相关阅读:
    JavaScript创建对象及对象继承
    Shell基础学习小结
    深入理解Java反射
    STL"源码"剖析-重点知识总结
    Java IO工作机制分析
    优先队列原理与实现
    CleanBlog(个人博客+源码)
    线性时间排序
    深入理解FTP协议
    Spring学习之AOP总结帖
  • 原文地址:https://www.cnblogs.com/wwho/p/15622356.html
Copyright © 2020-2023  润新知