python:@property装饰器 ﹏ヽ暗。殇╰゛Y 2022-03-26 01:42 177阅读 0赞 1、@property 内置装饰器函数,把一个方法调用方式变成属性调用方式。(将一个方法当成一个属性使用)。注意@property装饰器只能在面向对象中使用。 2、访问使用@property装饰器装饰的函数可以直接调用函数名 (会执行一段功能(函数)然后返回值) 3、@property 装饰器只能修饰不带参数的方法。 计算圆的周长和面积 from math import pi class Circle: def __init__(self, radius): self.radius = radius @property def zhouchang(self): return 2 * pi * self.radius @property def area(self): return pi * self.radius * self.radius c = Circle(2) print(c.zhouchang) print(c.area) 运行结果: 12.566370614359172 12.566370614359172 练习2:BMI指数计算 成人的BMI数值: 过轻:低于18.5 正常:18.5-23.9 过重:24-27 肥胖:28-32 非常肥胖, 高于32 体质指数(BMI)=体重(kg)÷身高^2(m) EX:70kg÷(1.75×1.75)=22.86 class BMI(): def __init__(self,weight,height): self.weight=weight self.heiht=height @property def bmi(self): num=self.weight/(self.heiht*self.heiht) # print(num) return num b1=BMI(80,1.75) # b1.bmi() print(b1.bmi) #26.122448979591837 练习3:使用@property装饰器定义getter、setter、deleter 方法。 class Person(): def __init__(self, name, age): self.name = name self.__age = age # self.__age就是一个私有属性,对象就不能使用了 @property #只提供对象.age来获取属性的值,可以控制属性的访问权限——只读模式 def age(self): # 获取私有属性的值 return self.__age # property修饰的方法名称是xx,这里就是@xx.setter # @age.setter是@property的副产品 @age.setter #可以使用对象.setter这种方法来给私有属性设置值 def age(self, age): # 给私有属性设置值 if age < 0 or age > 150: print('输入的不合法啊,sb') return self.__age = age @property def get_age(self): # 获取私有属性的值 return self.__age def __str__(self): msg = '姓名{},年龄{}'.format(self.name, self.__age) return msg person = Person('zs', 20) # person.set_age(21) print(person) print(person.age) person.age = 20 运行结果: 姓名zs,年龄20 20
相关 装饰器 装饰器 定义: 用来装饰的工具 在不改变源代码及调用方式的基础上额外增加新的功能 开放封闭原则: 扩展是开放的(增加新功能) 修改源码是封闭的(修改已经实现 柔光的暖阳◎/ 2023年10月10日 10:16/ 0 赞/ 61 阅读
相关 装饰器 [https://www.cnblogs.com/cicaday/p/python-decorator.html][https_www.cnblogs.com_cicaday_ ╰半橙微兮°/ 2023年01月06日 01:24/ 0 赞/ 143 阅读
相关 【python】闭包和装饰器、通用装饰器、多个装饰器、带参装饰器、类装饰器 1、闭包 概念: 把使用了外部函数变量的内部函数称为闭包 构成闭包的三个条件: 在函数嵌套的基础上(在外部函数内定义一个内部函数) 内部函数使用外部函数变 - 日理万妓/ 2022年11月28日 13:44/ 0 赞/ 253 阅读
相关 装饰器 装饰器 装饰模式有很多经典的使用场景,例如插入日志、性能测试、事务处理等等,有了装饰器,就可以提取大量函数中与本身功能无关的类似代码,从而达到代码重用的目的。 装饰器 ╰+攻爆jí腚メ/ 2022年06月07日 11:58/ 0 赞/ 245 阅读
相关 装饰器 以前你有没有这样一段经历:很久之前你写过一个函数,现在你突然有了个想法就是你想看看,以前那个函数在你数据集上的运行时间是多少,这时候你可以修改之前代码为它加上计时的功能,但是这 港控/mmm°/ 2022年05月28日 13:27/ 0 赞/ 252 阅读
相关 装饰器 装饰器 如果我们要增强函数的功能,但又不希望修改`原`函数的定义,这种在代码运行期间动态增加功能的方式,称之为“装饰器”(Decorator); 本质上,de 墨蓝/ 2021年12月14日 14:17/ 0 赞/ 263 阅读
相关 装饰器 目录 普通装饰器 带参数的装饰器 多个装饰器装饰一个函数 装饰器的修复技术 装饰器 :在不改变原函数的代号和调用方法的基础上, 给原函数额外增加功能 女爷i/ 2021年10月29日 16:26/ 0 赞/ 378 阅读
相关 装饰器 装饰器的固定模式 def warpper(f): def inner(args,kwargs): print("WDNMD") 我就是我/ 2021年10月29日 07:12/ 0 赞/ 504 阅读
相关 装饰器 定义: 器字代表函数,装饰器本质是函数;装饰:装饰其他函数,就是为其他函数添加附加功能 原则: 1.不能修改被装饰函数的源代码(在不修改被装饰函数源代码的情况下为 心已赠人/ 2021年09月20日 12:00/ 0 赞/ 389 阅读
还没有评论,来说两句吧...