Python的@property使用方法
@property
的方式有点类似装饰器,它的核心是为了减少代码量。看下面的代码
class Person(object):def __init__(self):self._age = 0@propertydef age(self):return self._age@age.setterdef age(self, age):if not isinstance(age, int):raise ValueError("Age must be an integer")if age < 0 or age > 130:raise ValueError("Age out of range")self._age = ageper = Person
per.age = 100
print(per.age)
方法声明为@property
,可以直接把方法名作为属性用,使用setter
,表示设置的时候,可以检查属性。
Python的@property使用方法相关推荐
- python中property魔法方法原理_Python类中的魔法方法之 __slots__原理解析
在类中每次实例化一个对象都会生产一个字典来保存一个对象的所有的实例属性,这样非常的有用处,可以使我们任意的去设置新的属性. 每次实例化一个对象python都会分配一个固定大小内存的字典来保存属性,如果 ...
- python中property方法有用_python中@property和property函数常见使用方法示例
本文实例讲述了python中@property和property函数常见使用方法.分享给大家供大家参考,具体如下: 1.基本的@property使用,可以把函数当做属性用 class Person(o ...
- Python 中的特殊方法(定制类):__str__、__cmp__、__len__、数学运算、类型转换、@property运用、__slots__和__call__函数
Python中的特殊方法 Python的特殊方法定义在 class中,不需要直接进行显示调用,Python的某些操作符或者函数会自动调用对应的特殊方法.这些方法如:__str__().__len__( ...
- Python使用property函数和使用@property装饰器定义属性访问方法的异同点分析
Python使用property函数和使用@property装饰器都能定义属性的get.set及delete的访问方法,他们的相同点主要如下三点: 1.定义这些方法后,代码中对相关属性的访问实际上都会 ...
- Python使用property函数定义属性访问方法如果不定义fget会怎么样?
我们知道Python使用property函数定义属性访问方法时的语法如下: 实例属性=property(fget=None, fset=None, fdel=None, doc=None) 而是要@p ...
- python的property用法_python @property的用法及含义全面解析
在接触python时最开始接触的代码,取长方形的长和宽,定义一个长方形类,然后设置长方形的长宽属性,通过实例化的方式调用长和宽,像如下代码一样. class Rectangle(object): de ...
- Python中sys.argv方法的一些典型用法
本文整理汇总了Python中sys.argv方法的典型用法代码示例. 示例1: weather_icons # 需要导入模块: import sys [as 别名] # 或者: from sys im ...
- python 中 property 属性的讲解及应用
Python中property属性的功能是:property属性内部进行一系列的逻辑计算,最终将计算结果返回 property属性的有两种方式: 装饰器 即:在方法上应用装饰器 类属性 即:在类中定义 ...
- python中函数和方法的区别
本篇内容主要介绍从几个维度来介绍下python中函数和方法的区别: 首先,从分类的角度来分析. (1)函数的分类: 内置函数:python内嵌的一些函数. 匿名函数:一行代码实现一个函数功能. 递归函 ...
最新文章
- 使用ASP.NET Abstractions增强ASP.NET应用程序的可测试性
- 喜报!中华万年历签约神策数据
- c++17进阶(3)-Boehm GC垃圾回收(1)
- jquery之ajax请求工具类
- HDU1421 搬寝室
- html for循环正方形,JavaScript for 循环
- 许昌:让便捷支付成为智慧城市新名片
- 驱动级的自动按键_空调遥控器特殊按键使用方法及注意事项
- linux 内核io操作,关于Linux内核中的异步IO的使用
- java8 stream 做累加_《Java 8 in Action》Chapter 1:为什么要关心Java 8
- MySQL只有80端口开放_Centos 开放80端口
- html打印宽度怎么设置,A4纸网页打印 html网页页面的宽度设置成多少
- Representation Learning with Contrastive Predictive Coding
- Linux服务器远程连接
- 二维正态分布matlab程序,一维正态分布、二维正态分布的matlab实现
- 罗技 连点 脚本_走心分享!当评测罗技MASTER 3遇上ANYWHERE 3_鼠标
- spring alibaba seata 分布式事务实践
- 【论文复刻】企业数字化转型与资本市场表现——来自股票流动性的经验证据(2007-2021年数据)
- 百万亚瑟王无法连接服务器请在信号良好的地方重试,乖离性百万亚瑟王无法匹配怎么解决 匹配失败原因和解决方法...
- Twitter只剩下两个硬核程序员了!
热门文章
- 观星(【CCF】NOI Online能力测试3 入门组)
- 【英语】Invest in Yourself
- C++ 一周刷完C++基础课程(同C程序进行比较)
- python爬虫之requests模块2
- Reachability from the Capital
- [HEOI2016/TJOI2016]序列
- 词典 (noi OpenJudge)
- ThinkPHP V5.0 正式版发布
- 上网调查一下目前流行的源程序版本管理软件和项目管理软件都有哪些?各有什么优缺点?...
- 超棒的30款JS类库和工具