day28 classmethod 装饰器
类方法装饰类方法
把一个方法变成类中的方法
之后调用此方法不需要对类实例化后在调用
直接通过类.方法即可调用
class Goods:
__discount = 0.5
def __init__(self,name,price):
self.name = name
self.__price = price # 我才不会让别人知道我的价格
@property
def price(self):
return self.__price * Goods.__discount
@classmethod # 类方法,把一个方法变成类中的方法,
# 这个方法直接可以被类调用,不在需要对象调用了
def chang_dis(cls,new_discount):
Goods.__discount = new_discount
suyang = Goods("苏阳",0.5)
print(suyang.price) # 0.25
Goods.chang_dis(0.3) # 原来的方式改还需要输入实例化对象
print(suyang.price) # 0.15
day28 classmethod 装饰器的更多相关文章
- 手动实现staticmethod和classmethod装饰器
首先,staticmethod和classmethod装饰器是通过非数据描述符实现的.用法简单,这里就不细说了. 这里主要分析一下staticmethod和classmethod是如何通过描述符实现的 ...
- @classmethod装饰器
当一个类中有多条用例,我们在执行的时候每执行一条用例就要重新打开一次浏览器操作,例如下: start test1 quit start test2 start 若我们使用@classmethod装饰器 ...
- unittest(@classmethod 装饰器)
1.前言: 前面讲到unittest里面setUp可以在每次执行用例前执行,这样有效的减少了代码量,但是有个弊端,比如打开浏览器操作,每次执行用例时候都会重新打开,这样就会浪费很多时间. 于是就想是不 ...
- day28 staticmethod 装饰器
静态方法装饰器 完全面向对象的程序中,如果存在某个函数既和对象无关也和类无关,就用staticmethod方法, 在调用此方法的时候只需要加上类名即可,说白了就是强行面向对象....把不是对象的方法也 ...
- day28 property 装饰器
方法属性装饰器 本质上来说就是将方法的执行括号去掉,这样将一个方法掩饰成了一个变量名字,变成了类似属性的东西内置装饰器函数,只在面向对象中使用 from math import pi class Cr ...
- 3.4 unittest之装饰器(@classmethod)
3.4 unittest之装饰器(@classmethod) 前言前面讲到unittest里面setUp可以在每次执行用例前执行,这样有效的减少了代码量,但是有个弊端,比如打开浏览器操作,每次执行用例 ...
- (unittest之装饰器(@classmethod)) 让多个测试用例在一个浏览器里面跑 的方法
一.装饰器 1.用setUp与setUpClass区别 setup():每个测试case运行前运行teardown():每个测试case运行完后执行setUpClass():必须使用@classmet ...
- Selenium2+python-unittest之装饰器(@classmethod)
原文地址:http://www.cnblogs.com/yoyoketang/p/6685416.html 前言 前面讲到unittest里面setUp可以在每次执行用例前执行,这样有效的减少了代码量 ...
- Selenium2+python自动化55-unittest之装饰器(@classmethod)
前言 前面讲到unittest里面setUp可以在每次执行用例前执行,这样有效的减少了代码量,但是有个弊端,比如打开浏览器操作,每次执行用例时候都会重新打开,这样就会浪费很多时间. 于是就想是不是可以 ...
随机推荐
- 计算机网络协议OSI TCP/IP协议--001
网桥:连接同构的LAN的网络互联设备,(同构的LAN 网是,应用层到逻辑层) 实 现的功能是:MAC子层和物理层.1.帧的发送与接收.2.缓冲的管理.3.协议转换. 路由器:在网络层实现互联,他 ...
- BZOJ 2784 时间流逝
BZOJ 2784 时间流逝 古典概率论... 可以发现由于能量圈数量限制,所以所构成的必定为树状结构(即便是转成最小能量圈和能量圈权值和之后存在重复状态,但是每个状态的含义不同,而且不能自身转移自身 ...
- eclipse取消空格、等号、分号自动录入
默认eclipse中按空格.等号.分号等键时,会将提示框中的文字输入到编辑内容中,但是很多时候我们并不希望录入,可如下设置. 1.打开 Eclipse -> Window -> Perfe ...
- asp.net core使用jexus部署在linux无法正确 获取远程ip的解决办法
asp.net core程序部署在centos7(下面的解决方案,其他系统都能使用,这里只是我自己部署在centos7),使用服务器jexus进行部署,AppHost模式. 因为请求是由jexus进行 ...
- html5录音支持pc和Android、ios部分浏览器,微信也是支持的,JavaScript getUserMedia
以前在前人基础上重复造了一个网页录音的轮子,顺带把github仓库使用研究了一下,扔到了github上. 优势在于结构简单,可插拔式的录音格式支持,几乎可以支持任意格式(前提有相应的编码器):默认提供 ...
- Flask系列学习
一.Flask系列学习(基础) Flask学习-前言 Flask学习-Flask基础之WSGI Flask学习-Flask app启动过程 Flask学习-Flask app接受第一个HTTP请求 F ...
- 使用canvas实现一个圆球的触壁反弹
HTML <canvas id="canvas" width="500" height="500" style="borde ...
- Ionic 入门与实战之第三章:Ionic 项目结构以及路由配置
原文发表于我的技术博客 本文是「Ionic 入门与实战」系列连载的第三章,主要对 Ionic 的项目结构作了介绍,并讲解了Ionic 中的路由概念以及相关配置. 原文发表于我的技术博客 1. Ioni ...
- 20135327郭皓--Linux内核分析第六周 进程的描述和进程的创建
进程的描述和进程的创建 一.进程的描述 操作系统三大功能: 进程管理 内存管理 文件系统 进程描述符task_struct数据结构 task _ struct:为了管理进程,内核必须对每个进程进行清晰 ...
- spring播放器详细设计说明书(一)
1 引言 1.1编写目的 编写目的是详细说明SPRING音乐播放器的设计使用,预期读者对象为在个人电脑上需要使用简单音乐播放器的用户.1.2项目背景 说明: a.待开发软件系统的名称为SPRING音 ...