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



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

    每个人在自己的擅长领域,都有一些独特的知识、能力。
    积累到某个阶段,他必然会获得收益。
    
    当感到焦虑的时候,思考 接下来该做什么,能让自己变得更好 ,才是最重要的问题。
    但是又没有速成的方法,所以只能一点点积累!
    
    
  • 相关阅读:
    scss-@for 指令
    scss-@else if指令
    pandas dataframe在指定的位置添加一列, 或者一次性添加几列,re
    数据挖掘之Python调用R包、函数、脚本
    数据挖掘之各种聚类算法的比较 (转载)
    数据挖掘之分类算法概述与比较(转载)
    数据挖掘之数据规范化
    数据分析之集成算法
    数据分析之随机森林
    数据挖掘之数据规约
  • 原文地址:https://www.cnblogs.com/wwho/p/15622356.html
Copyright © 2011-2022 走看看