是Python编程语言中的两个概念。
__get__()
__set__()
__delete__()
参考链接:
内容: 描述符引导 摘要 定义和介绍 描述符协议 调用描述符 样例 Properties 函数和方法 静态方法和类方法 摘要 定义并展示如何调用描述符,展示自定义描述符和几个内置的python描述符,包括函数、属性、静态方法和类方法,通过给出一个Python的示例应用来展示描述符是如何工作的. 熟练掌握描述符不仅让你拥有python使用的额外技巧,并且可以加深对Python内部如何工作的理解,提升对程序设计的能力,而且体会到python的设计优雅之处 定义和介绍 一般来说,描述符是带有“绑定行为”的对象属性,它的属性访问已经被描述符协议中的方法覆盖了.这些方法是__get__(),__set__(),和__delete__(). 如果一个对象定义了这些方法中的任何一个,它就是一个描述符. 默认的属相访问是从对象的字典中 get, set, 或者 delete 属性,;例如a.x的查找顺序是: a.x -> a.__dict__['x'] -> type(a).__dict__['x'] -> type(a)的基类(不包括元类),如果查找的值是对象定义的描述方法之一,python可能会调用描述符方法来重载默认行为, 发生在这个查找环节的哪里取决于定义了哪些描述符方法 注意,只有在新式类中描述符才会起作用(新式类继承type或者object class) 描述符是强有力的通用协议,属性、方法、静态方法、类方法和super()背后使用的就是这个机制,描述符简化了底层的c代码,并为Python编程提供了一组灵活的新工具 描述符协议
我们希望将一个只读的属性定义为 property 属性方法,只有在访问它时才进行计算,但是,又希望把计算出的值缓存起来,不要每次访问它时都重新计算。
https://pyzh.readthedocs.io/en/latest/Descriptor-HOW-TO-Guide.html
来源:https://pyzh.readthedocs.io/en/latest/python-magic-methods-guide.html
> 当一个类中,包含了三个魔术方法(`__get__,__set__,__delete__`)之一,或者全部时,那么这个类就称为描述符类
專 欄 ❈Pytlab,Python中文社区专栏作者。主要从事科学计算与高性能计算领域的应用,主要语言为Python,C,C++。熟悉数值算法(最优化方法,蒙特卡洛算法等)与并行化算法(MPI,OpenMP等多线程以及多进程并行化)以及python优化方法,经常使用C++给python写扩展。 blog:http://ipytlab.com github:https://github.com/PytLab ❈—— 前言 最近使用描述符对自己的催化动力学模拟程序进行了改进,在Python描述符的帮助下实现
描述符是与特定属性互相绑定的一种协议,通过方法被触发修改属性,这些方法包括__get__(),__set__(),__delete__().将这些方法定义在类中,即可实现描述符
觉得 Python 太“简单了”?作为一个 Python 开发者,我必须要给你一点人生经验,不然你不知道天高地厚!)一份满分 100 分的题,这篇文章就是记录下做这套题所踩过的坑。
这篇通过Django源码中的cached_property来看下Python中一个很重要的概念——Descriptor(描述器)的使用。想必通过实际代码来看能让人对其用法更有体会。
本文介绍了Python中类方法、静态方法、类变量、描述符以及装饰器在Python中的应用。类方法使用`@classmethod`装饰器定义,可以在不创建类实例的情况下被调用;静态方法使用`@staticmethod`装饰器定义,不会获取类的实例;类变量使用`@classproperty`装饰器定义,可以在类实例之间共享数据;描述符使用`@descriptor`装饰器定义,可以用于实现自定义的属性;装饰器是用于修改或生成其他类的函数或属性,可以增强现有类的功能或改变其行为。
isinstance(obj,cls)检查obj是否是类cls的实例,反映族谱关系(不仅父类可以,父类的父类也可以)
Serverless 架构是云发展的产物,是一种去服务器化更加明显的架构。然而,细心的朋友可能会发现,有一个开发者工具也叫 Serverless,那么 Serverless 到底是一个架构,还是一个开发者工具呢?这个开发者工具和 Serverless 架构又有什么关系呢? 初探 Serverless 开发者工具 Serverless 架构开始发展没多久,就有一群人注册了 serverless.com 的域名,成立了一家叫 Serverless 的公司,同时还开发了一款同名工具。 Serverless 架构
描述器用到的方法 用到3个魔术方法: __get__()、__set__()、__delete__() 方法使用格式: obj.__get__(self, instance, owner) obj.__set__(self, instance, value) obj.__delete__(self, instance) self: 指当前类的实例本身 instance: 指owner的实例 owner: 指当前实例作为
前不久的微信开发者大会上在推他们的Serverless架构,即他们的产品腾讯云函数SCF。
在Python中,能够通过一个对象,找出type、class、attribute或者method的能力,成为反射。
SCF CLI 是腾讯云云函数(Serverless Cloud Function,SCF)产品的命令行工具,想必很多小伙伴已经有所了解,或者试用过了。作为一个可以提高开发者效率的工具,腾讯云 Serverless 团队一直在对 SCF CLI 进行优化工作,本文将给大家介绍新版 SCF CLI 增加的有趣功能! ---- 介绍 一、Deploy 功能优化 1:部署可以选择默认 COS 只需要在设置的时候,设置 using-cos 就可以,当然也可以 scf configure set --using-c
Tencent Serverless 目前已经支持了不少语言的热门框架,包括 Express、 Koa、Egg 以及 Flask 等等大家熟悉的框架都可以轻松上云部署。不过在实际业务的使用中,尤其是迁移过程中,还是有不少需要注意的地方,比如 POST/GET 的参数传输方法难以原生获取等等。 这变化都是原有项目上云过程中,需要去关注和改动的点。那么,如何在使用Serverless Framework做项目的时候更加顺畅,尽量避免“采坑”。 本周三(2月19日)晚19:00,Serverless 团队联合
python的提供一系列和属性访问有关的特殊方法:__get__, __getattr__, __getattribute__, __getitem__。本文阐述它们的区别和用法。
领取专属 10元无门槛券
手把手带您无忧上云