深入解析python中的实例方法、类方法和静态方法


Posted in Python onMarch 11, 2019

1、实例方法/对象方法

实例方法或者叫对象方法,指的是我们在类中定义的普通方法。
只有实例化对象之后才可以使用的方法,该方法的第一个形参接收的一定是对象本身

深入解析python中的实例方法、类方法和静态方法

2、静态方法

(1).格式:在方法上面添加 @staticmethod
(2).参数:静态方法可以有参数也可以无参数
(3).应用场景:一般用于和类对象以及实例对象无关的代码。
(4).使用方式: 类名.类方法名(或者对象名.类方法名)。

定义一个静态方法

class Game:

  @staticmethod
  def menu():
    print('------')
    print('开始[1]')
    print('暂停[2]')
    print('退出[3]')


Game.menu()

3、类方法

无需实例化,可以通过类直接调用的方法,但是方法的第一个参数接收的一定是类本身
(1).在方法上面添加@classmethod
(2).方法的参数为 cls 也可以是其他名称,但是一般默认为cls
(3).cls 指向 类对象
(5).应用场景:当一个方法中只涉及到静态属性的时候可以使用类方法(类方法用来修改类属性)。
(5).使用 可以是 对象名.类方法名。或者是 类名.类方法名

class Person:
  type = '人类'

  @classmethod
  def test(cls):
    print(cls.type)


Person.test()

举例:使用类方法对商品进行统一打折

class Goods:
  __discount = 1

  def __init__(self, name, price):
    self.name = name
    self.price = price

  @classmethod
  def change_discount(cls, new_discount):
    cls.__discount = new_discount

  @property
  def finally_price(self):
    return self.price * self.__discount


banana = Goods('香蕉', 10)
apple = Goods('苹果', 16)
Goods.change_discount(0.8)
print(banana.finally_price)
print(apple.finally_price)

Goods.change_discount(0.5)
print(banana.finally_price)
print(apple.finally_price)

输出为:

8.0
12.8
5.0
8.0

以上所述是小编给大家介绍的python中的实例方法、类方法和静态方法详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Python 相关文章推荐
python解析xml文件实例分享
Dec 04 Python
python socket 超时设置 errno 10054
Jul 01 Python
Python的Django框架中的数据库配置指南
Jul 17 Python
python线程池(threadpool)模块使用笔记详解
Nov 17 Python
新手入门Python编程的8个实用建议
Jul 12 Python
pyinstaller 3.6版本通过pip安装失败的解决办法(推荐)
Jan 18 Python
python脚本实现mp4中的音频提取并保存在原目录
Feb 27 Python
python自定义函数def的应用详解
Jun 03 Python
PyTorch中Tensor的数据类型和运算的使用
Sep 03 Python
浅析Python打包时包含静态文件处理方法
Jan 15 Python
你需要掌握的20个Python常用技巧
Feb 28 Python
详解Python中的for循环
Apr 30 Python
Python 函数返回值的示例代码
Mar 11 #Python
浅谈Python批处理文件夹中的txt文件
Mar 11 #Python
Python数据报表之Excel操作模块用法分析
Mar 11 #Python
Python合并同一个文件夹下所有PDF文件的方法
Mar 11 #Python
Python实现截取PDF文件中的几页代码实例
Mar 11 #Python
Python XlsxWriter模块Chart类用法实例分析
Mar 11 #Python
Python写一个基于MD5的文件监听程序
Mar 11 #Python
You might like
php include加载文件两种方式效率比较
2010/08/08 PHP
PHP中3种生成XML文件方法的速度效率比较
2012/10/06 PHP
php curl 伪造IP来源的实例代码
2012/11/01 PHP
分享一个超好用的php header下载函数
2014/01/31 PHP
php多任务程序实例解析
2014/07/19 PHP
php中使用PHPExcel读写excel(xls)文件的方法
2014/09/15 PHP
php返回json数据函数实例
2014/10/09 PHP
JavaScript 中的事件教程
2007/04/05 Javascript
jquery.validate分组验证代码
2011/03/17 Javascript
JSON 数字排序多字段排序介绍
2013/09/18 Javascript
jQuery的deferred对象详解
2014/11/12 Javascript
JavaScript类继承及实例化的方法
2015/07/25 Javascript
javascript实现加载xml文件的方法
2015/11/24 Javascript
js数组的五种迭代方法及两种归并方法(推荐)
2016/06/14 Javascript
jQuery弹出层后禁用底部滚动条(移动端关闭回到原位置)
2016/08/29 Javascript
echart简介_动力节点Java学院整理
2017/08/11 Javascript
Vue cli+mui 区域滚动的实例代码
2018/01/25 Javascript
vue2配置scss的方法步骤
2019/06/06 Javascript
jquery选择器和属性对象的操作实例分析
2020/01/10 jQuery
通过js随机函数Math.random实现乱序
2020/05/19 Javascript
详解vue中v-model和v-bind绑定数据的异同
2020/08/10 Javascript
ant design vue嵌套表格及表格内部编辑的用法说明
2020/10/28 Javascript
如何解决django配置settings时遇到Could not import settings 'conf.local'
2014/11/18 Python
简单介绍Python中的decode()方法的使用
2015/05/18 Python
python利用不到一百行代码实现一个小siri
2017/03/02 Python
Python对接 xray 和微信实现自动告警
2019/09/17 Python
Python基本类型的连接组合和互相转换方式(13种)
2019/12/16 Python
Python程序控制语句用法实例分析
2020/01/14 Python
Python二元算术运算常用方法解析
2020/09/15 Python
简历中个人自我评价范文
2013/12/26 职场文书
珠宝店促销方案
2014/03/21 职场文书
电子商务专业毕业生求职信
2014/06/12 职场文书
庆七一活动总结
2014/08/27 职场文书
2014年教研组工作总结
2014/11/26 职场文书
求职自我评价范文
2015/03/09 职场文书
「月刊Action」2022年5月号封面公开
2022/03/21 日漫