描述符简单应用示例

 1 #Author : Kelvin
 2 #Date : 2019/1/24 20:57
 3
 4 #实现目标:控制类的实例化对象时传入的参数值
 5
 6 #定义描述符
 7 class Type():
 8     def __init__(self,key,type):
 9         self.key=key
10         self.type=type
11     def __get__(self, instance, owner):
12         # print("get")
13         return instance.__dict__[self.key]
14     def __set__(self, instance, value):
15         # print("set")
16         if not isinstance(value,self.type):
17             raise TypeError("%s Type is not %s"%(self.key,self.type))
18         instance.__dict__[self.key]=value
19     def __delete__(self, instance):
20         # print("delete")
21         instance.__dict__.pop(self.key)
22
23 #定义类
24 class People:
25     name=Type("name",str)
26     age=Type("age",int)
27     salary=Type("salary",float)
28     def __init__(self,name,age,salary):
29         self.name=name
30         self.age=age
31         self.salary=salary
32 p1=People("kelvin",18,12800.36)

此时如果实例化对象时,传入的参数不符合条件就会抛出异常!

原文地址:https://www.cnblogs.com/sun-10387834/p/10316860.html

时间: 2024-08-30 12:06:45

描述符简单应用示例的相关文章

转载python描述符介绍

来源:http://www.ibm.com/developerworks/cn/opensource/os-pythondescriptors/ 简介 Python 2.2 引进了 Python 描述符,同时还引进了一些新的样式类,但是它们并没有得到广泛使用.Python 描述符是一种创建托管属性的方法.除了其他优点外,托管属性还用于保护属性不受修改,或自动更新某个依赖属性的值. 描述符增加了对 Python 的理解,改善了编码技能.本文介绍了描述符协议,并演示了如何创建和使用描述符. 描述符协

描述符简介

请给作者点赞-->原文链接 简介 Python 描述符是一种创建托管属性的方法.除了其他优点外,托管属性还用于保护属性不受修改,或自动更新某个依赖属性的值. 描述符增加了对 Python 的理解,改善了编码技能.本文介绍了描述符协议,并演示了如何创建和使用描述符. 描述符协议 Python 描述符协议 只是一种在模型中引用属性时指定将要发生事件的方法.它允许编程人员轻松.有效地管理属性访问: set get delete 在其他编程语言中,描述符被称作 setter 和 getter,而公共函数

USB HID描述符【转】

本文转载自: USB是个通用的总线,端口都是统一的.但是USB设备却各种各样,例如USB鼠标,USB键盘,U盘等等,那么USB主机是如何识别出不同的设备的呢?这就要依赖于描述符了.USB的描述符主要有设备描述符,配置描述符,接口描述符,端点描述符,字符串描述符,HID描述符,报告描述符等等.关于报告描述符,请看我以前写的:<USB HID报告及报告描述符简介 > http://group.ednchina.com/93/198.aspx.一个USB设备有一个设备描述符,设备描述符里面决定了该设

五、基于文件描述符的文件操作(非缓冲)

1文件描述符 内核为每个进程维护一个已打开文件的记录表,文件描述符是一个较小的正整数(0—1023),它代表记录表的一项,通过文件描述符和一组基于文件描述符的文件操作函数,就可以实现对文件的读.写.创建.删除等操作. 常用基于文件描述符的函数有open(打开).creat(创建).close(关闭).read(读取).write(写入).ftruncate(改变文件大小).lseek(定位).fsync(同步).fstat(获取文件状态).fchmod(权限).flock(加锁).fcntl(控

传送文件描述符的简单示例

传送进程描述符,简单的来说,就是进程A打开一个文件f,获得了一个文件描述符fd1,然后进程A将该描述符通过某些方式,传递给了B,此时B就具有了描述符fd2(注意,fd1 不一定等于fd2),从而可以通过fd2对文件f进行读写等一系列的操作.其实本质上 相当于A,B两个进程同时打开了文件f. 具体实现其实比较简单,例如当一个父进程要向子进程传递一个文件描述符时,首先会在fork产生子进程以前,调用socketpair建立一个套接字对,用于父子进程之间的通信.之后父进程打开文件f,获得文件描述符fd

全限定名、简单名称和描述符是什么东西?(转)

https://mingshan.fun/2018/09/18/fully-qualified-name-simple-name-descriptor/ 在看Class文件的结构时,我们会遇到这样几个概念,全限定名(Fully Qualified Name).简单名称(Simple Name)和描述符(Descriptor),那么这些是什么东东呢? 首先来说全限定名,一个类的全限定名是将类全名的.全部替换为/,示例如下: me/mingshan/cglib/SampleClass简单名称是指没有

Python描述符常用场景详解

Descriptors( 描述符 ) 是语言中一个深奥但很重要的一个黑魔法,它被广泛应用于 Python 语言的内核,熟练掌握描述符将会为 Python程序员 的工具箱添加一个额外的技巧.本文将讲述描述符的定义以及一些常见的场景,并且在文末会补充一下 __getattr , __getattribute__, __getitem__ 这三个同样涉及到属性访问的魔术方法,希望对大家 学习python有所帮助. 描述符的定义 descr__get__(self, obj, objtype=None)

Python描述符(descriptor)解密

Python中包含了许多内建的语言特性,它们使得代码简洁且易于理解.这些特性包括列表/集合/字典推导式,属性(property).以及装饰器(decorator).对于大部分特性来说,这些"中级"的语言特性有着完善的文档,并且易于学习. 但是这里有个例外,那就是描述符.至少对于我来说,描述符是Python语言核心中困扰我时间最长的一个特性.这里有几点原因如下: 有关描述符的官方文档相当难懂,而且没有包含优秀的示例告诉你为什么需要编写描述符(我得为Raymond Hettinger辩护一

IO重定向与文件描述符

1.介绍 IO重定向用于捕捉一个文件,命令,程序,脚本或者代码块的输出,然后把捕捉到的输出作为输入发送给另外一个文件,命令,程序或脚本. 终端程序一般从单一源以流的形式聚集输入和显示输出,script执行时(进程), 系统会默认开启3个标准文件,stdin, stdout,stderr . script默认会由stdin读取数据,默认指键盘,由stdout输出执行结果,默认指屏幕; 若有错误发生,则由stderr显示信息,默认也指向屏幕.系统开启这3个文件时,以文件代码(分别为0,1,2)作为连