zoukankan      html  css  js  c++  java
  • 访问限制机制

    访问限制机制

    1.什么是访问限制机制?

      凡是以类内部定义的属性或方法

      以__开头的属性或方法名,都会被限制,外部不能“直接访问”该属性原型。

      ps:看着像将该属性或方法隐藏起来了。

    #python特有的:

      注意:凡是在内部定义 __ 开头的属性或方法,都会变形为__ 类名__属性/方法。

    2.为什么要有访问限制?

      比如:将一些隐私的数据,隐藏起来,不让外部轻易获取。

      -接口:

        可以将一堆数据封装成一个接口,可以让用户调用接口

        并且通过相应的逻辑,最后再将数据返回给用户

    3.如何实现?

    # demo1
    class User:
    
        # __开头的属性
        __name = 'tank'  # __name变形为 ---》 _类名__name
    
        # __开头的方法
        def __run(self):
            print('tank is running...')
    
    
    print(User.__name)
    obj = User()
    print(obj._User__name)
    
    
    
    # # demo2
    class User:
        # __开头的属性
        __name = 'tank'  # __name变形为 ---》 _类名__name
        __age = 17
        __sex = 'male'
        __ID = '46549846798468498498'
        __bal = 151651651651654654654
        # def __init__(self, name, age, sex):
        #     self.__name = name
        #     self.__age = age
        #     self.__sex = sex
        # 校验接口,获取用户信息
        def parse_user(self, username, password):
            if username == 'tank_jam' and password == '123':
                print(f'''
                通过验证,获取用户信息。
                用户名: {self.__name}
                用户年龄: {self.__age}
                用户性别: {self.__sex}
                身份ID: {self.__ID}
                用户资产: {self.__bal}
                ''')
            else:
                print('校验失败, 无法查询用户信息!')
    
        # __开头的方法
        def __run(self):
            print('tank is running...')
    
    obj = User()
    obj.parse_user('tank_jam', '1234')
    
    
    # demo3:
    class ATM:
        # 取钱功能:
        # 1.插入磁卡
        def __insert_card(self):
            print('开始插卡...')
            pass
    
        # 2.输入密码
        def __input_pwd(self):
            print('输入密码...')
            pass
    
        # 3.输入取款金额
        def __input_bal(self):
            print('输入取款金额...')
            pass
    
        # 4.吐钱
        def __output_money(self):
            print('开始吐钱...')
            pass
    
        # 5.打印流水账单
        def __print_flow(self):
            print('打印流水账单...')
            pass
    
        # 取款顺序规范接口:
        def withdraw(self):
            # 1.插入磁卡
            self.__insert_card()
    
            # 2.输入密码
            self.__input_pwd()
    
            # 3.输入取款金额
            self.__input_bal()
    
            # 4.吐钱
            self.__output_money()
    
            # 5.打印流水账单
            self.__print_flow()
    
    
    amt_obj = ATM()
    amt_obj.withdraw()
  • 相关阅读:
    关于获取多个id的用法
    纯css打造凹进与突出效果
    ie8兼容半透明效果css
    常用函数积累
    ie兼容图片缩小后模糊失真(锯齿)问题
    图片放大_css3
    弹出层跳出原框架
    ifame_自适应高度
    POJ #2479
    SPOJ #752. Power it!
  • 原文地址:https://www.cnblogs.com/lvguchujiu/p/11944560.html
Copyright © 2011-2022 走看看