深入解析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常见文件操作的函数示例代码
Nov 15 Python
python登录豆瓣并发帖的方法
Jul 08 Python
Python通过正则表达式选取callback的方法
Jul 18 Python
Python编程使用tkinter模块实现计算器软件完整代码示例
Nov 29 Python
利用Python如何生成hash值示例详解
Dec 20 Python
简单了解python的break、continue、pass
Jul 08 Python
python PyAutoGUI 模拟鼠标键盘操作和截屏功能
Aug 04 Python
Python从入门到精通之环境搭建教程图解
Sep 26 Python
在vscode中配置python环境过程解析
Sep 28 Python
使用OpenCV circle函数图像上画圆的示例代码
Dec 27 Python
关于Tensorflow 模型持久化详解
Feb 12 Python
Python自动化实战之接口请求的实现
May 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读取IMAP邮件
2006/10/09 PHP
PHP 递归效率分析
2009/11/24 PHP
php var_export与var_dump 输出的不同
2013/08/09 PHP
PHP分页详细讲解(有实例)
2013/10/30 PHP
php+ajax实现图片文件上传功能实例
2014/06/17 PHP
javascript操作cookie_获取与修改代码
2009/05/21 Javascript
跨浏览器通用、可重用的选项卡tab切换js代码
2011/09/20 Javascript
解析javascript 浏览器关闭事件
2013/07/08 Javascript
js操作iframe兼容各种主流浏览器示例代码
2013/07/22 Javascript
js加载读取内容及显示与隐藏div示例
2014/02/13 Javascript
使用JavaScript进行进制转换将字符串转换为十进制
2014/09/21 Javascript
jQuery获取样式中颜色值的方法
2015/01/29 Javascript
jQuery通过deferred对象管理ajax异步
2016/05/20 Javascript
jquery ajax结合thinkphp的getjson实现跨域的方法
2016/06/06 Javascript
Bootstrap实现登录校验表单(带验证码)
2016/06/23 Javascript
详解Node.js中的事件机制
2016/09/22 Javascript
浅谈微信JS-SDK 微信分享接口开发(介绍版)
2018/08/15 Javascript
Openlayers显示地理位置坐标的方法
2020/09/28 Javascript
JavaScript中条件语句的优化技巧总结
2020/12/04 Javascript
收集的几个Python小技巧分享
2014/11/22 Python
Python使用django搭建web开发环境
2017/06/09 Python
详解flask表单提交的两种方式
2018/07/21 Python
tensorflow 变长序列存储实例
2020/01/20 Python
最新2019Pycharm安装教程 亲测
2020/02/28 Python
keras自定义回调函数查看训练的loss和accuracy方式
2020/05/23 Python
8种常用的Python工具
2020/08/05 Python
python中的插入排序的简单用法
2021/01/19 Python
使用pandas读取表格数据并进行单行数据拼接的详细教程
2021/03/03 Python
可自定义箭头样式的CSS3气泡提示框
2016/03/16 HTML / CSS
Sixt美国租车:高端豪华车型自驾体验
2017/09/02 全球购物
意大利值得信赖的在线超级药房:PillolaStore
2020/02/05 全球购物
2013年入党人员的自我鉴定
2013/10/25 职场文书
工作经常出错的检讨书
2014/09/13 职场文书
vue如何批量引入组件、注册和使用详解
2021/05/12 Vue.js
Oracle中update和select 关联操作
2022/01/18 Oracle
使用 DataAnt 监控 Apache APISIX的原理解析
2022/07/07 Servers