深入解析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协程的用法和例子详解
Sep 09 Python
python验证码识别教程之利用滴水算法分割图片
Jun 05 Python
flask框架使用orm连接数据库的方法示例
Jul 16 Python
解决PyCharm import torch包失败的问题
Oct 13 Python
Python的matplotlib绘图如何修改背景颜色的实现
Jul 16 Python
在Python中使用turtle绘制多个同心圆示例
Nov 23 Python
基于Python获取照片的GPS位置信息
Jan 20 Python
Python日志:自定义输出字段 json格式输出方式
Apr 27 Python
python实现在线翻译
Jun 18 Python
Python 如何实现数据库表结构同步
Sep 29 Python
Python基础之教你怎么在M1系统上使用pandas
May 08 Python
Python快速优雅的批量修改Word文档样式
May 20 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的Ajax跨域调用实现代码
2012/02/21 PHP
php5.4以下版本json不支持不转义内容中文的解决方法
2015/01/13 PHP
Jquery颜色选择器ColorPicker实现代码
2012/11/14 Javascript
Ext JS 4官方文档之三 -- 类体系概述与实践
2012/12/16 Javascript
jquery $.trim()方法使用介绍
2014/05/21 Javascript
nodejs中操作mysql数据库示例
2014/12/20 NodeJs
jQuery实现在textarea指定位置插入字符或表情的方法
2015/03/11 Javascript
js实现分割上传大文件
2016/03/09 Javascript
JavaScript简单获取页面图片原始尺寸的方法
2016/06/21 Javascript
简单学习vue指令directive
2016/11/03 Javascript
详解angularjs中如何实现控制器和指令之间交互
2017/05/31 Javascript
Angular 4依赖注入学习教程之FactoryProvider配置依赖对象(五)
2017/06/04 Javascript
JS实现静态页面搜索并高亮显示功能完整示例
2017/09/19 Javascript
nodejs判断文件、文件夹是否存在及删除的方法
2017/11/10 NodeJs
vue中$refs的用法及作用详解
2018/04/24 Javascript
微信小程序实现聊天对话(文本、图片)功能
2018/07/06 Javascript
浅谈Express.js解析Post数据类型的正确姿势
2019/05/30 Javascript
nodejs 递归拷贝、读取目录下所有文件和目录
2019/07/18 NodeJs
es6数组之扩展运算符操作实例分析
2020/04/25 Javascript
在vue-cli3中使用axios获取本地json操作
2020/07/30 Javascript
Django1.7+python 2.78+pycharm配置mysql数据库教程
2014/11/18 Python
Python计算三维矢量幅度的方法
2015/06/15 Python
Python多线程爬虫简单示例
2016/03/04 Python
解析Mac OS下部署Pyhton的Django框架项目的过程
2016/05/03 Python
Python循环语句中else的用法总结
2016/09/11 Python
python pymysql链接数据库查询结果转为Dataframe实例
2020/06/05 Python
keras实现theano和tensorflow训练的模型相互转换
2020/06/19 Python
如何在Canvas上的图形/图像绑定事件监听的实现
2020/09/16 HTML / CSS
韩国演唱会订票网站:StubHub韩国
2019/01/17 全球购物
伦敦最受欢迎的蛋糕店:Konditor & Cook
2019/11/01 全球购物
建房协议书
2014/04/11 职场文书
高中生班主任评语
2014/04/25 职场文书
推广普通话标语
2014/06/27 职场文书
主持人开场白台词
2015/05/29 职场文书
导游词之永泰公主墓
2019/12/04 职场文书
vue+elementui 实现新增和修改共用一个弹框的完整代码
2021/06/08 Vue.js