广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python包装授权
  • 540
分享到

Python包装授权

Python 2023-01-31 07:01:24 540人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

    1、什么是包装# -*- coding : utf-8 -*- """     包装类,就是给被包装的类加个壳;被包装内实现壳的内部,而包装内提供壳的外部(接口),有点类似于继承关系,     不过也不完全时,因为通过继承也可以实现

    1、什么是包装

# -*- coding : utf-8 -*-
"""
    包装类,就是给被包装的类加个壳;被包装内实现壳的内部,而包装内提供壳的外部(接口),有点类似于继承关系,
    不过也不完全时,因为通过继承也可以实现包装效果,不使用继承同样可以实现包装效果。下面通过一个例子来展示
    包装的概念
"""

class PackageList(object):
    "包装List类型,使用非继承实现"

    def __init__(self):
        "构造方法,建立一个内部list对象"
        self.innerList = []

    def add(self, element):
        "添加一个元素"
        self.innerList.append(element)

    def remove(self, element):
        "删除一个元素"
        self.innerList.remove(element)

    def extend(self, elements):
        "扩展一个元素或者一个列表"
        if isinstance(elements, list):
            self.innerList.extend(elements)
        else:
            self.innerList.append(elements)

    def get(self, start = 0, end = -1, step = 1):
        "获取列表,或者某个元素,或者某个区域的元素"
        if isinstance(start, int) and isinstance(end, int) and isinstance(step, int):
            if end == -1:
                return self.innerList[start::step]
            else:
                return self.innerList[start : end : step]

        else:
            raise TypeError

if __name__ == "__main__":
    packageList = PackageList()
    # 添加一个元素
    packageList.add(1)
    # 添加一个序列
    packageList.extend([2, 3, 4])
    # 删除一个元素
    packageList.remove(3)
    # 获取列表
    print(packageList.get())

    2、什么是授权

    

# -*- coding : utf-8 -*-

"""
    授权:通俗点讲就是谁给谁权利,拥有权利的一方(授权方),授予给没有权利的一方(被授权方)。
    那么python是通过什么来获取权利,或者说是如何接受授权;关键是使用__getattr__内建函数,
    在Python中,使用一个属性时,先到局部搜索,然后到类搜索,最后调用__getattr__函数,由于
    这一点,我们可以通过这个函数去获取某个对象的权限(属性)。
    注:
        属性:变量和方法
"""

class FileAuthorization(object):
    "实现文件对象授权"

    # obj : 授权方
    def __init__(self, obj):
        self.__data = obj

    # 重写__getattr__
    def __getattr__(self, attr):
        "使用内建getattr获取某个对象的属性,当python解析器在类实例和类中都没有搜索到属性时,调用"
        return getattr(self.__data, attr)

if __name__ == "__main__":
    file = FileAuthorization(open("./data.txt", 'w'))
    file.writelines(["test1\n", "test2\n"])
    file.flush()
    file.close()


    3、总结

    包装和授权往往使用在定制某种类,其实现的多样性,只要你能想的到,就可以出现千变万化的授权、包装实现方式,上述仅仅提供参考。

--结束END--

本文标题: Python包装授权

本文链接: https://www.lsjlt.com/news/191064.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python包装授权
        1、什么是包装# -*- coding : utf-8 -*- """     包装类,就是给被包装的类加个壳;被包装内实现壳的内部,而包装内提供壳的外部(接口),有点类似于继承关系,     不过也不完全时,因为通过继承也可以实现...
    99+
    2023-01-31
    Python
  • python脚本实现Redis未授权批量提权
    前言 本文主要给大家介绍了关于redis未授权批量提权的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。 安装依赖 sudo easy_install redis 使用 ...
    99+
    2022-06-04
    批量 脚本 python
  • Android 12.0根据包名授予读取IMEI权限
    1.概述  在12.0的产品开发中,对于读取设备的imei sn号功能也是常有的,而在10.0以后对于读取imei也是受权限要求越来越多了一般的app是读取不到这个权限了,根据产品需求需要读取这个权限,所以需要在系统中对这个app授权让它读...
    99+
    2023-09-04
    android java framework 授权imei权限 获取imei权限
  • 【Linux】Centos安装 mariadb 并授权远程登陆
    👨‍🎓博主简介   🏅云计算领域优质创作者   🏅华为云开发者社区专家博主   🏅阿里云开发者社区专家博主 💊交流社区:运维交流社区 欢迎...
    99+
    2023-08-23
    linux centos mariadb mysql 数据库
  • Android 12.0根据包名授予app所需的权限
    1.概述 在12.0定制开发中第三方app第一次进入的时候 会弹出授予权限的权限框 有时候觉得挺麻烦的,所以根据客户要求 默认授予权限,这时我们就需要根据包名PackageName 来给与所需要的权限 首选来看下PackageManager...
    99+
    2023-09-11
    android app授权权限 权限授权 framework 应用默认授权
  • 利用Python+163邮箱授权码发送邮
    背景 前段时间写了个自动打卡的脚本,但是脚本不够完善,我需要知道,打卡到底成没成功,因此,我想到了用Python执行完代码之后,再执行一段发送邮件的代码。需求开始明确了,就开始分析和写代码实现吧。 分析 SMTP(Simple Mail ...
    99+
    2023-01-30
    邮箱 Python
  • 利用Python+163邮箱授权码发送带
    背景 前段时间写了个自动爬虫的脚本,定时在阿里云服务器上执行,会从某个网站上爬取链接保存到txt文本中,但是脚本不够完善,我需要爬虫完毕之后通过邮件把附件给我发送过来,之前写过一个《利用Python+163邮箱授权码发送邮件》的博客,但是...
    99+
    2023-01-30
    邮箱 Python
  • python包安装及安装包制作
    1. 单文件模块:直接把文件拷贝到$python_dir/lib  这是类库目录(可直接将单文件或单包放在这里)2. 多文件模块,带setup.py:python setup.py install    卸载时只能手动删除,一般安装在系统类...
    99+
    2023-01-31
    安装包 python
  • Python 安装包setuptools
    python包的一般安装方法    1、下载包    2、python setup.py build  #可能不需要     3、python setup.py install Python安装包的命令有的easy_install, set...
    99+
    2023-01-31
    安装包 Python setuptools
  • Python 安装Matplotlib包
    1. 先在网站确定安装Matplotlib所需的其他包,可在如下网址查询:https://www.lfd.uci.edu/~gohlke/pythonlibs/  如图所示,我们需要先将上述红框内的包先安装好,才能安装Matplotlib。...
    99+
    2023-09-28
    python matplotlib 开发语言
  • python下安装Image包
    只需要这条命令即可:yum instann python-imaging 我尝试了PIP, python-PIL 最后无意看到的。。 ...
    99+
    2023-01-31
    python Image
  • Python安装PyGraphics包简
    Python还比较年轻,这几个小软件很小,但找齐不那么容易,官网上可能由于对方有部分库遗失下载不下来,各处收集,全部收齐上传在此,且在命名时已按照逐一安装的顺序编好了号,需要的下载下来按序号安装!Python安装PyGraphics包 (p...
    99+
    2023-01-31
    Python PyGraphics
  • python安装本地包
    Python包(pip)离线安装方法 : 1、到https://pypi.python.org/pypi 下载相应包并解压 2、找到所需要的所有依赖,放进解压后的文件夹里,终端输入:sudo python setup.py instal...
    99+
    2023-01-31
    python
  • vue移动端如何实现微信授权登录插件封装
    小编给大家分享一下vue移动端如何实现微信授权登录插件封装,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1、新建wechatAu...
    99+
    2022-10-19
  • pip如何安装python包
    pip安装python包在命令行中输入“bash`pip install package_name`”命令即可,其中,package_name是要安装的包的名称。在安装某些Python包时,可能会遇到依赖问题,可以尝试使用虚拟环境,虚拟环境...
    99+
    2023-12-09
    python pip
  • python安装包下载 windows
    python安装包下载地址:https://pan.baidu.com/s/1_jIRdVugSNzXKbhPxhihLg ...
    99+
    2023-01-31
    安装包 python windows
  • python安装wxpython工具包
    wxPython是Python语言的一套优秀的GUI图形库,允许Python程序员很方便的创建完整的、功能键全的GUI用户界面。wxPython是作为优秀的跨平台GUI库wxWidgets的Python封装和Python模块的方式提供给用户...
    99+
    2023-01-31
    工具包 python wxpython
  • python 闭包&装饰器(一)
    一、闭包 1.举例 def outer(): x = 10 def inner(): # 内部函数 print(x) # 外部函数的一个变量 return inner # 调用in...
    99+
    2023-01-30
    python
  • 怎么封装Python代码包
    这篇文章主要介绍“怎么封装Python代码包”,在日常操作中,相信很多人在怎么封装Python代码包问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么封装Python代码包”的疑惑有所帮助!接下来,请跟着小编...
    99+
    2023-06-16
  • python怎么安装函数包
    在python中使用pip命令安装函数包,具体方法如下:pip命令语法:pip install some-package-name参数:some-package-name:需要安装的函数包名。pip命令使用方法:pip install Nu...
    99+
    2022-10-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作