Python内置装饰器@property】的更多相关文章

在<Python装饰器(Decorators )>一文中介绍了python装饰器的概念,日常写代码时有一个装饰器很常见,他就是内置的@property. 我们一步步的来接近这个概念. 一个初始示例如下: LeosWorkGround项目下有一个名为leo01.py的文件内容如下: # coding=utf-8 class Student(object): def __init__(self , first_name , last_name , age , hobby): self.first_…
组合: 夺命三问: 1.什么是组合? 组合指的是一个对象中,包含另一个或多个对象. 2.为什么要用组合? 减少代码的冗余. 3.如何使用组合? 耦合度: 耦: 莲藕 ---> 藕断丝连 - 耦合度越高: 程序的可扩展性越低. - 耦合度越低: 程序的可扩展性越高. 总结: - 继承: 继承是类与类的关系,子类继承父类的属性/方法,子类与父类是一种 “从属” 关系. - 组合: 组合是对象与对象的关系,一个对象拥有另一个对象中的属性/方法,是一种什么有什么的关系. # 组合实现 class Peo…
前言 接着上一篇笔记,我们来看看内置装饰器property.staticmethod.classmethod 一.property装饰器 1. 普通方式修改属性值 code class Celsius: def __init__(self, temperature = 0): self.temperature = temperature def to_fahrenheit(self): return (self.temperature * 1.8) + 32 man = Celsius(-280…
内置的装饰器 ​ 内置的装饰器和普通的装饰器原理是一样的,只不过返回的不是函数,而是类对象,所以更难理解一些. @property ​ 在了解这个装饰器前,你需要知道在不使用装饰器怎么写一个属性. def getWidth(self): return self.__width def setWidth(self, newwidth): self.__width = newwidth width = property(getWidth, setWidth) ​ 以上就是一个Python属性的标准写…
# -*- coding: utf-8 -*- # author:baoshan class Student(object): def __init__(self, name): self.name = name @property def age(self): return self._age @age.setter def age(self, value): if not isinstance(value, int): raise ValueError("输入不合法:年龄必须为数值!&quo…
对象的绑定方法复习classmethodstaticmethod TOC 对象的绑定方法复习 由对象来调用 会将对象当做第一个参数传入 若对象的绑定方法中还有其他参数,会一并传入 classmethod 是一个装饰器,在给类内部定义方法中装饰,将类内部的方法变为"类的绑定方法" 由类来调用 会将类作为第一个参数传入 若类的绑定方法中还有其他参数,会一并传入 class DB: __data = '宝藏的地点在贵州' def __init__(self, user, pwd): self…
python进阶04 装饰器.描述器.常用内置装饰器 一.装饰器 作用:能够给现有的函数增加功能 如何给一个现有的函数增加执行计数的功能 首先用类来添加新功能 def fun(): #首先我们定义一个函数 print('func running') #看到封装,我们首先想到的是函数 class MyFunc(): def __init__(self,f): #把函数和变量封装在一起 self.f=f self.count=0 def run(self): #间接的调用了封装的函数 self.co…
# property # 内置装饰器函数 只在面向对象中使用 # 装饰后效果:将类的方法伪装成属性 # 被property装饰后的方法,不能带除了self外的任何参数 from math import pi class Circle: def __init__(self, r): self.r = r def perimeter(self): return 2 * pi * self.r def area(self): return pi * self.r**2 * pi c1 = Circle…
# method 英文是方法的意思 # classmethod 类方法 # 当一个类中的方法中只涉及操作类的静态属性时,此时在逻辑上,我们想要直接通过类名就可以调用这个方法去修改类的静态属性,此时可以用这个内置装饰器函数 # staticmethod 静态方法 # 类的方法 classmethod class Goods: discount = 0.5 # 折扣 def __init__(self, name, price): self.name = name self.__price = pr…
python内置了property.staticmethod.classmethod三个装饰器,有时候我们也会用到,这里简单说明下 1.property 作用:顾名思义把函数装饰成属性 一般我们调用类方法成员,都是如下写法: class propertyTest(): def __init__(self,x,y): self.x = x self.y = y def square(self): return self.x * self.y pt = propertyTest(3,5) print…