zoukankan      html  css  js  c++  java
  • 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 等方法中,可以额外添加其他功能(数据的检测,处理等),作用很大。



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

    每个人在自己的擅长领域,都有一些独特的知识、能力。
    积累到某个阶段,他必然会获得收益。
    
    当感到焦虑的时候,思考 接下来该做什么,能让自己变得更好 ,才是最重要的问题。
    但是又没有速成的方法,所以只能一点点积累!
    
    
  • 相关阅读:
    SpringMVC自动封装List对象 —— 自定义参数解析器
    fetch封装
    基于jQuery实现简单的js模块化
    CSS实现树形结构 + js加载数据
    java多线程
    JS中AOP的实现和运用
    移动端通过ajax上传图片(文件)并在前台展示——通过H5的FormData对象
    chart.js使用常见问题
    用PHP和Ajax进行前后台数据交互——以用户登录为例
    用JS添加和删除class类名
  • 原文地址:https://www.cnblogs.com/wwho/p/15622356.html
Copyright © 2011-2022 走看看