深入解析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字符串替换的2种方法
Nov 30 Python
Python中使用strip()方法删除字符串中空格的教程
May 20 Python
Android分包MultiDex策略详解
Oct 30 Python
机器学习的框架偏向于Python的13个原因
Dec 07 Python
python实现随机漫步算法
Aug 27 Python
python实现将汉字保存成文本的方法
Nov 16 Python
深度辨析Python的eval()与exec()的方法
Mar 26 Python
pyqt5对用qt designer设计的窗体实现弹出子窗口的示例
Jun 19 Python
pytorch使用指定GPU训练的实例
Aug 19 Python
pygame实现非图片按钮效果
Oct 29 Python
基于python模拟TCP3次握手连接及发送数据
Nov 06 Python
Python-OpenCV实现图像缺陷检测的实例
Jun 11 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安装为Apache DSO
2006/10/09 PHP
php下载远程文件类(支持断点续传)
2008/11/14 PHP
全面解读PHP的Yii框架中的日志功能
2016/03/17 PHP
PHP基于array_unique实现二维数组去重
2020/07/14 PHP
使用jquery实现IE下按backspace相当于返回操作
2014/03/18 Javascript
JS实现兼容火狐及IE iframe onload属性的遮罩层隐藏及显示效果
2016/08/23 Javascript
js中的eval()函数把含有转义字符的字符串转换成Object对象的方法
2016/12/02 Javascript
JS对象创建的几种方式整理
2017/02/28 Javascript
关于JavaScript语句后面的分号问题
2017/12/07 Javascript
微信小程序实时聊天WebSocket
2018/07/05 Javascript
vue中的inject学习教程
2019/04/24 Javascript
layui表格数据复选框回显设置方法
2019/09/13 Javascript
浅谈vue的第一个commit分析
2020/06/08 Javascript
JS运算符优先级与表达式示例详解
2020/09/04 Javascript
[01:37]全新的一集《真视界》——TI7总决赛
2017/09/21 DOTA
[02:26]2018DOTA2亚洲邀请赛赛前采访-Newbee篇
2018/04/03 DOTA
[22:07]DOTA2-DPC中国联赛 正赛 iG vs Magma 选手采访
2021/03/11 DOTA
Python编写的com组件发生R6034错误的原因与解决办法
2013/04/01 Python
Linux-ubuntu16.04 Python3.5配置OpenCV3.2的方法
2018/04/02 Python
Python根据文件名批量转移图片的方法
2018/10/21 Python
详解python中的Turtle函数库
2018/11/19 Python
Python实现的序列化和反序列化二叉树算法示例
2019/03/02 Python
python代码编写计算器小程序
2020/03/30 Python
面向对象学习之pygame坦克大战
2019/09/11 Python
Python  word实现读取及导出代码解析
2020/07/09 Python
详解HTML5中download属性的应用
2015/08/06 HTML / CSS
CAT鞋英国官网:坚固耐用的靴子和鞋
2016/10/21 全球购物
时装界的“朋克之母”:Vivienne Westwood
2017/07/06 全球购物
意大利奢侈品牌在线精品店:Jole.it
2020/11/23 全球购物
教育专业个人求职信
2013/12/02 职场文书
请假条格式范文
2014/04/10 职场文书
2014最新版群众路线四风整改措施
2014/09/24 职场文书
2015年企业新年寄语
2014/12/08 职场文书
2015年药房工作总结
2015/04/25 职场文书
2015迎新晚会活动总结
2015/07/16 职场文书
节水宣传标语口号
2015/12/26 职场文书