属性描述符

JavaWeb总结——jsp+servlet 参考资料 知识梳理: 1、基础语法 scriptlet——三个指令——六个动作 2、内置对象 九大内置对象——四大作用域——四种追踪技术 3、servlet与java 导入Javabean——servlet生命周期——跳转——过滤器 第一章——Java Web发展历程 1、Web发展历程 a、为了科研,设计出Internet,进一步发展,应用HTTP协议进行超文本和超... 阅读详情

__getattr__

from datetime import date


class User:
    def __init__(self, name, birthday):
        self.name = name
        self.birthday = birthday


if __name__ == '__main__':
    u = User('shell', date(year=1996, month=1, day=1))
    print(u.birthday)
    print(u.age)
    

显然我们访问age属性会报错因为没有age属性,实际上是先访问__getattr__魔法方法

from datetime import date


class User:
    def __init__(self, name, birthday):
        self.name = name
        self.birthday = birthday

    def __getattr__(self, item):
        print(item)


if __name__ == '__main__':
    u = User('shell', date(year=1996, month=1, day=1))
    print(u.birthday)
    print(u.age)
    print(u.hight)
    
1996-01-01
age
None
hight
None

__getattr__方法会获取不存在的属性名(age,hight)并保存在item中。

注意打印一个没有返回值的函数结果都是None,所以会有两个None

getattaribute

__getattaribute__是属性访问拦截器,当这个累的属性被实例访问时,会自动调用类的__getattaribute__方法。注意,不要轻易的重写__getattaribute__方法。

参考:https://blog.youkuaiyun.com/qq_26442553/article/details/82467777

属性描述符

  • __get__
  • __set__
  • __del__

实现上述中任意一个魔法方法即可称为属性描述符,若只实现__get__称为非数据属性描述符,若同时实现__get__,__set__称为数据属性描述符。

class IntField:
    def __get__(self, instance, owner):
        print(instance)
        print(owner)
        print('__get__')

    def __set__(self, instance, value):
        print(instance)
        print(value)
        print('__set__')


class User:
    age = IntField()


u = User()
u.age = 30
print(u.age)

<__main__.User object at 0x00000218759585F8>
30
__set__
<__main__.User object at 0x00000218759585F8>
<class '__main__.User'>
__get__
None

传入30后,先调用age对象的__set__,打印后调用__get__。instance都是User对象的内存地址,value是传入的值,owner是User类。

class IntField:
    # 数据描述符
    def __get__(self, instance, owner):
        return self.values

    def __set__(self, instance, value):
        if not isinstance(value, int):
            raise TypeError('类型错误')
        self.values = value


# class NonDataIntField:
#     # 非属性描述符
#     def __get__(self, instance, owner):
#         return self.value


class User:
    age = IntField()


u = User()
u.age = 30
print(u.age)

参考文章:https://www.cnblogs.com/xyz2b/p/10529068.html

基于carsim与Simulink联合仿真的车辆换道轨迹规划与轨迹跟踪模型 PID_反步控制_滑膜控制三种四旋翼无人机轨迹跟踪控制算法仿真 附带对应的说明文档,提供建模过程与仿真结果文献(英文)➕PPT 描述:采用的同一种参考轨迹,都是三维仿真 三种控制方法: [1]PID控制、[2]反步控制、[3]滑膜控制(三个仿真模型) 每个仿真均应用了同一种轨迹路径,直接运行即可出三维图,可以实现四旋翼无人机轨迹的跟踪 阅读详情

相关推荐

USRP X410 MPM版本与主机UHD版本不匹配问题记录与解决

至此大功告成!之前安装软件的坑算是填起来了,再次记录一下,希望能帮到有同样问题的小伙伴~

yanzuwu233的博客 1434

python之getattr()函数

getattr():从名字上看获取属性值。具体的用法如下: class Person(): age = 14 Tom = Person() print(getattr(Tom,'age')) 此时的结果为14, 若,该属性不存在 getattr(Tom,'name') AttributeError: 'Person' object has no attribute 'name...

一笔沁念 2万+

R语言实战:从Raw Counts到TPM/FPKM的完整转换指南(含代码调试技巧)

本文详细介绍了在R语言环境中将RNA-seq原始计数(raw counts)转换为TPM/FPKM值的完整流程,包含代码实现和常见错误调试技巧。通过具体案例演示如何正确处理基因长度和测序深度因素,实现表达量标准化,为生物信息学分析提供可靠数据基础。特别适合需要进行转录组数据分析的研究人员和实验室技术人员参考。

weixin_28559803的博客 477

Python 属性描述符(描述符示例:验证属性)

如 19.4 节所示,特性工厂函数借助函数式编程模式避免重复编写读值方法和设值方法。特性工厂函数是高阶函数,在闭包中存储storage_name 等设置,由参数决定创建哪些存取函数,再使用存取函数构建一个特性实例。解决这种问题的面向对象方式是描述符类。这里继续 19.4 节的 LineItem 系列示例,把 quantity 特性工厂函数重构成 Quantity 描述符类。

钢铁男儿 982

飞牛NAS+Docker打造私人IPTV直播源:手把手教你部署iptv-api

本文详细介绍了如何在飞牛NAS上通过Docker部署iptv-api,打造私人IPTV直播源。从SSH配置到Docker容器部署,手把手教你实现自动更新直播源、多终端支持的解决方案,适用于Kodi、PotPlayer等播放器,提升家庭娱乐体验。

earth的博客 5569

Qt快速读取Excel文件

网上很多读取方式都是如下形式,太慢了,打开文件+读取文件要6s以上,实在是受不了! QAxObject excel("Excel.Application"); excel.setProperty("Visible", false); QAxObject *work_books = excel.querySubObject("WorkBooks"); work_boo...

c+c++的博客 2万+

js的属性描述符

js属性描述符,writable,enumerable,configurable,set,get

风天语的博客 1576

Vben Admin权限管理全解析:从动态菜单到按钮级控制(附代码示例)

本文全面解析Vben Admin框架的权限管理系统,从动态菜单生成到按钮级细粒度控制,提供完整的实现方案和代码示例。深入探讨基于角色-权限模型的架构设计,分享前后端协作的最佳实践,帮助开发者快速构建安全高效的企业级后台系统。

weixin_30919429的博客 485

属性描述符提供的属性是什么

属性描述符是JavaScript中用于描述对象属性的元数据。每个属性描述符都是一个对象,包含了属性的各种特性。数据描述符:包含value和writable属性。存取描述符:包含get和set属性。});// 输出:// {// }属性描述符是JavaScript中用于描述对象属性的元数据。每个属性描述符都是一个对象,包含了属性的各种特性。数据描述符:包含value和writable属性。存取描述符:包含get和set属性。});// 输出:// {// }

一个做过前端开发的产品经理,经历过睿智产品的折磨导致脱发之后,励志要翻身"农奴"把歌唱,一边打入敌人内部一边持续提升自己,为我们广大开发同胞谋福祉,坚决抵制睿智产品折磨我们码农兄弟! 659

ONNX Runtime C# YOLO全链路压测:从300ms到22ms的15个底层优化技巧

摘要:本文分享了工业质检场景下C#调用YOLOv8s ONNX模型的性能优化实战经验。原始单帧推理耗时300ms无法满足产线需求,通过全链路分析定位瓶颈(预处理85ms、推理180ms、后处理30ms)。重点优化措施包括:使用OpenCVSharp CUDA加速预处理(85ms→12ms),开启ONNX Runtime ALL级别图优化,选用TensorRT执行提供程序(180ms→22ms),以及优化内存管理和线程调度。最终实现单帧总耗时22ms±2ms,GPU利用率提升至85%,完整满足产线120块板/

2601_94871597的博客 402

5.13华为OD机试真题 新系统 - 社交网络相同爱好好友查询 (Java/Py/C/C++/Js/Go)

5.13华为OD机试真题 新系统 - 社交网络相同爱好好友查询 (Java/Py/C/C++/Js/Go)

算法大师! 154

Object 的属性描述符

描述符key说明反转状态数据描述符,访问器描述符是否可更改描述符类型+删除DontDelete数据描述符属性的值,是否可修改值(赋值)Read-only访问器描述符get set。

oschina_41559824的博客 768

使用R语言中的NbClust包确定最佳聚类簇数

聚类分析是一种常用的数据分析技术,它将相似的数据点分组成不同的簇。NbClust包是R语言中一个强大的工具,它提供了多种方法来帮助我们确定最佳的聚类簇数。综上所述,使用R语言中的NbClust包可以帮助我们确定最佳的聚类簇数。通过选择适当的聚类算法和评估指标,我们可以更好地理解数据集的结构和模式,并根据需要进行进一步的分析和解释。此外,NbClust包还提供了其他函数和参数,用于执行不同的聚类算法、选择不同的评估指标等。安装完毕后,我们需要加载NbClust包,以便使用其中的函数。函数来确定最佳聚类簇数。

2301_79326559的博客 2278

JS 属性描述符

属性描述符 1.概述 对象里目前存在的属性描述符有两种主要形式: 数据描述符:是一个具有值的属性,该值可能是可写的,也可能不是可写的。 存取描述符:是由getter-setter函数对描述的属性。 描述符必须是这两种形式之一;不能同时是两者。 2.可选键值 先来看看文档中的图片 2.1数据描述符的可选键值 从图中可以看到,只属于数据描述符的可选键值为 value 和 writabl...

pspxuan的博客 496

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

JavaScript 中的属性描述符

JavaScript 中的属性描述符 古之立大事者,不惟有超世之才,亦必有坚忍不拔之志。——苏轼 写在前面 JavaScript 提供了一个内部数据结构,用于描述对象的值,控制其行为,例如该属性是否可写、可读、可配置、是否可修改以及是否可枚举等。这个内部数据结构被称为属性描述符。 每个属性都有自己对应的属性描述符,保存该属性的元信息。 对象里目前存在的属性描述符有两种主要形式:数据描述符和存储描述符。 数据描述符 数据描述符是一个具有属性的值,该值是可写的,也可能是不可写的。数据描述符具有以下可选键值:

一碗周 1196

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

如何获取对象的属性描述符

属性描述符是JavaScript中用于描述对象属性的元数据。每个属性描述符都是一个对象,包含了属性的各种特性。数据描述符:包含value和writable属性。存取描述符:包含get和set属性。属性描述符是JavaScript中用于描述对象属性的元数据。每个属性描述符都是一个对象,包含了属性的各种特性。数据描述符:包含value和writable属性。存取描述符:包含get和set属性。

一个做过前端开发的产品经理,经历过睿智产品的折磨导致脱发之后,励志要翻身"农奴"把歌唱,一边打入敌人内部一边持续提升自己,为我们广大开发同胞谋福祉,坚决抵制睿智产品折磨我们码农兄弟! 708

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

JavaScript语法高级之属性&属性描述符

一、描述符分类: 属性描述符:修饰属性的属性 ,元属性,是属性的特征; 数据描述符:具有writable value属性描述符的属性; 访问描述符:具有set和get的属性。 set&amp;get:set中value必须写;成对出现; &lt;script type="text/javascript"&gt; /* 属性描述符:修饰属性的属性 元属性 ...

Science Explorer 1516

Python 属性描述符:从原理到 ORM 实践详解

本文深入讲解了Python属性描述符的核心概念与应用。首先从property的局限性出发,说明属性描述符如何解决多字段校验的代码复用问题。详细介绍了描述符的定义与分类(数据/非数据描述符),重点分析了Python属性查找的完整流程及描述符在其中扮演的关键角色。通过ORM框架的底层实现原理,展示了描述符在实际开发中的强大价值。掌握属性描述符不仅能编写更优雅的Python代码,更是理解主流框架底层机制的重要基础。

软件科学-郝学胜 2442

JavaScript属性描述符详解

属性描述符是 JavaScript 对象系统的底层核心机制,通过精细控制属性的可写性、可枚举性、可配置性以及自定义存取逻辑,为开发者提供了强大的元编程能力。理解其工作原理有助于实现高级功能(如属性校验、响应式更新等),同时也是深入理解现代前端框架的基础。

记录来时的路 1197

【JavaScript】面向对象——属性描述符(详解)

【JavaScript】面向对象——属性描述符(详解) JS 提供了一个内部数据结构,用来描述对象的值、控制其行为。称为属性描述符。 对象里存在的属性描述符有两种形式,数据描述符和存取描述符

qq_49002903的博客 2222

JavaScript 属性描述符

前言   此文总结了属性描述符的作用和特性,以及限制对象操作的部分方法。 Object.defineProperty   Object.defineProperty 用于指定对象属性的描述符。   函数的第三个参数descriptor为属性的描述符,包括数据描述符和存取描述符两种。   注意属性描述符固定包括configurable、enumerable、writable和value四个键,存取描述符两种。   注意属性描述符固定包括configurable、enumerable、writable和valu

无 3376

js 属性描述符

你可以使用。

print_2022的博客 334
上一篇: 经典的参数错误
下一篇: 自定义元类
shell-x
博客等级 码龄7年 16粉丝 59原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值