深入解析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获取Linux系统下的本机IP地址代码分享
Nov 07 Python
利用python求相邻数的方法示例
Aug 18 Python
Python3利用SMTP协议发送E-mail电子邮件的方法
Sep 30 Python
详解python3中zipfile模块用法
Jun 18 Python
python爬虫自动创建文件夹的功能
Aug 01 Python
python暴力解压rar加密文件过程详解
Jul 05 Python
PyCharm 配置远程python解释器和在本地修改服务器代码
Jul 23 Python
利用anaconda作为python的依赖库管理方法
Aug 13 Python
Python paramiko模块使用解析(实现ssh)
Aug 30 Python
使用Pytorch来拟合函数方式
Jan 14 Python
python如何实现单链表的反转
Feb 10 Python
python生成13位或16位时间戳以及反向解析时间戳的实例
Mar 03 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下使用无限生命期Session的方法
2007/03/16 PHP
Look And Say 序列php实现代码
2011/05/22 PHP
golang 调用 php7详解及实例
2017/01/04 PHP
基于yaf框架和uploadify插件,做的一个导入excel文件,查看并保存数据的功能
2017/01/24 PHP
php empty 函数判断结果为空但实际值却为非空的原因解析
2018/05/28 PHP
php设计模式之工厂模式用法经典实例分析
2019/09/20 PHP
解决extjs grid 不随窗口大小自适应的改变问题
2014/01/26 Javascript
jQuery实现HTML5 placeholder效果实例
2014/12/09 Javascript
PHP和NodeJs开发的应用如何共用Session
2015/04/16 NodeJs
javascript中new关键字详解
2015/12/14 Javascript
JavaScript模拟push
2016/03/06 Javascript
原生js制作日历控件实例分享
2016/04/06 Javascript
Bootstrap登陆注册页面开发教程
2016/07/12 Javascript
vue Element-ui input 远程搜索与修改建议显示模版的示例代码
2017/10/19 Javascript
网页爬虫之cookie自动获取及过期自动更新的实现方法
2018/03/06 Javascript
JS数组去重的6种方法完整实例
2018/12/08 Javascript
python操作MySQL数据库具体方法
2013/10/28 Python
如何使用VSCode愉快的写Python于调试配置步骤
2018/04/06 Python
python自动分箱,计算woe,iv的实例代码
2019/11/22 Python
CSS3制作半透明边框(Facebox)类似渐变
2012/12/09 HTML / CSS
一个不错的HTML5 Canvas多层点击事件监听实例
2014/04/29 HTML / CSS
草莓巧克力:Shari’s Berries
2017/02/07 全球购物
台湾生鲜宅配:大口市集
2017/10/14 全球购物
 Alo Yoga官网:购买瑜伽服装
2018/06/17 全球购物
英国健身超市:Fitness Superstore
2019/06/17 全球购物
Looking4Parking美国:全球排名第一的机场停车比较品牌
2019/08/26 全球购物
英国第一的滑雪服装和装备零售商:Snow+Rock
2020/02/01 全球购物
白酒市场开发计划书
2014/01/09 职场文书
医学生毕业自我鉴定
2014/03/26 职场文书
交通事故协议书
2014/04/15 职场文书
模具专业自荐信
2014/05/29 职场文书
一份没有按时交货失信于客户的检讨书
2014/09/19 职场文书
党员考试作弊检讨书1000字
2015/02/16 职场文书
邹越演讲观后感
2015/06/15 职场文书
干货!开幕词的写作方法
2019/04/02 职场文书
Python带你从浅入深探究Tuple(基础篇)
2021/05/15 Python