深入解析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实时分析日志的一个小脚本分享
May 07 Python
python+selenium+autoit实现文件上传功能
Aug 23 Python
python实现ID3决策树算法
Dec 20 Python
PyQt5每天必学之组合框
Apr 20 Python
解决django服务器重启端口被占用的问题
Jul 26 Python
python实现复制大量文件功能
Aug 31 Python
python scrapy重复执行实现代码详解
Dec 28 Python
如何基于Python爬取隐秘的角落评论
Jul 02 Python
Python接收手机短信的代码整理
Aug 02 Python
python反爬虫方法的优缺点分析
Nov 25 Python
python 解决微分方程的操作(数值解法)
May 26 Python
68行Python代码实现带难度升级的贪吃蛇
Jan 18 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结合jQuery插件ajaxFileUpload实现异步上传文件实例
2020/08/17 PHP
PHP 中 DOMDocument保存xml时中文出现乱码问题的解决方案
2016/09/19 PHP
Laravel日志用法详解
2016/10/09 PHP
JavaScript 字符编码规则
2009/05/04 Javascript
解读JavaScript代码 var ie = !-[1,] 最短的IE判定代码
2011/05/28 Javascript
JavaScript window.document的属性、方法和事件小结
2012/10/24 Javascript
找出字符串中出现次数最多的字母和出现次数精简版
2012/11/07 Javascript
可简单避免的三个JS发布错误的详细介绍
2013/08/02 Javascript
js实现俄罗斯方块小游戏分享
2014/01/31 Javascript
基于NodeJS的前后端分离的思考与实践(一)全栈式开发
2014/09/26 NodeJs
ExtJs动态生成treepanel的Json格式
2015/07/19 Javascript
js判断上传文件后缀名是否合法
2016/01/28 Javascript
JS中对象与字符串的互相转换详解
2016/05/20 Javascript
详解node HTTP请求客户端 - Request
2017/05/05 Javascript
详解Angular中实现自定义组件的双向绑定的两种方法
2018/11/23 Javascript
Vue数字输入框组件使用方法详解
2020/02/10 Javascript
利用PHP实现递归删除链表元素的方法示例
2020/10/23 Javascript
合并百度影音的离线数据( with python 2.3)
2015/08/04 Python
Python 3.x读写csv文件中数字的方法示例
2017/08/29 Python
python爬虫基本知识
2018/03/05 Python
python打包压缩、读取指定目录下的指定类型文件
2018/04/12 Python
pytorch训练imagenet分类的方法
2018/07/27 Python
使用Python向C语言的链接库传递数组、结构体、指针类型的数据
2019/01/29 Python
python实现京东订单推送到测试环境,提供便利操作示例
2019/08/09 Python
Python Tkinter模块 GUI 可视化实例
2019/11/20 Python
python实现井字棋小游戏
2020/03/04 Python
浅谈tensorflow中dataset.shuffle和dataset.batch dataset.repeat注意点
2020/06/08 Python
北卡罗来纳州豪华家具和家居装饰店:Carolina Rustica
2018/10/30 全球购物
马德里竞技官方网上商店:Atletico Madrid Shop
2019/03/31 全球购物
adidas马来西亚官网:adidas MY
2020/09/12 全球购物
司机辞职报告范文
2014/01/20 职场文书
《在大海中永生》教学反思
2014/02/24 职场文书
市场营销专业应届生自荐信
2014/06/19 职场文书
三方股东合作协议书范本
2014/09/28 职场文书
文化大革命观后感
2015/06/17 职场文书
学习《中小学教师职业道德规范》心得体会
2016/01/18 职场文书