深入解析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入门篇之条件、循环
Oct 17 Python
Python中使用PIPE操作Linux管道
Feb 04 Python
Python多线程编程(四):使用Lock互斥锁
Apr 05 Python
python创建临时文件夹的方法
Jul 06 Python
使用celery执行Django串行异步任务的方法步骤
Jun 06 Python
Django操作session 的方法
Mar 09 Python
pycharm下配置pyqt5的教程(anaconda虚拟环境下+tensorflow)
Mar 25 Python
python实时监控logstash日志代码
Apr 27 Python
基于Python3读写INI配置文件过程解析
Jul 23 Python
No module named ‘win32gui‘ 的解决方法(踩坑之旅)
Feb 18 Python
opencv用VS2013调试时用Image Watch插件查看图片
Jul 26 Python
Python如何快速找到多个字典中的公共键(key)
Apr 29 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提取数据库内容中的图片地址并循环输出
2010/03/21 PHP
php根据年月获取季度的方法
2014/03/31 PHP
php事务处理实例详解
2014/07/11 PHP
php遍历目录方法小结
2015/03/10 PHP
thinkPHP简单调用函数与类库的方法
2017/03/15 PHP
浅谈PHP中的那些魔术常量
2020/12/02 PHP
JS自调用匿名函数具体实现
2014/02/11 Javascript
javascript模拟订火车票和退票示例
2014/04/24 Javascript
浅析javascript中function 的 length 属性
2014/05/27 Javascript
Javascript验证用户输入URL地址是否为空及格式是否正确
2014/10/09 Javascript
jquery ajax分页插件的简单实现
2016/01/27 Javascript
Bootstrap Validator 表单验证
2016/07/25 Javascript
angular基于路由控制ui-router实现系统权限控制
2016/09/27 Javascript
JavaScript动态数量的文件上传控件
2016/11/18 Javascript
利用浮层使select不可选的实现方法
2016/12/03 Javascript
Angular ng-repeat指令实例以及扩展部分
2016/12/26 Javascript
原生js实现可拖拽效果
2017/02/28 Javascript
Nodejs+express+ejs简单使用实例代码
2017/09/18 NodeJs
基于JavaScript实现贪吃蛇游戏
2020/03/16 Javascript
关于element-ui表单中限制输入纯数字的解决方式
2020/09/08 Javascript
[46:48]DOTA2上海特级锦标赛A组小组赛#2 Secret VS CDEC第三局
2016/02/25 DOTA
[01:05:29]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Aster BO3 第二场 1月24日
2021/03/11 DOTA
详解Python的单元测试
2015/04/28 Python
python pandas实现excel转为html格式的方法
2018/10/23 Python
Python读取Pickle文件信息并计算与当前时间间隔的方法分析
2019/01/30 Python
Python文件操作中进行字符串替换的方法(保存到新文件/当前文件)
2019/06/28 Python
python 的 openpyxl模块 读取 Excel文件的方法
2019/09/09 Python
Tessabit美国:集世界奢侈品和设计师品牌的意大利精品买手店
2020/06/29 全球购物
自我鉴定思想方面
2013/10/07 职场文书
大学生通用个人的自我评价
2014/02/10 职场文书
乡镇总工会学雷锋活动总结
2014/03/01 职场文书
六一儿童节主持词
2014/03/21 职场文书
工业自动化专业自荐信范文
2014/04/10 职场文书
党员“一帮一”活动总结
2015/05/07 职场文书
Vue + iView实现Excel上传功能的完整代码
2021/06/22 Vue.js
php修改word的实例方法
2021/11/17 PHP