深入解析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的Socket编程过程中实现UDP端口复用的实例分享
Mar 19 Python
深入理解python对json的操作总结
Jan 05 Python
python模块之re正则表达式详解
Feb 03 Python
详解Python异常处理中的Finally else的功能
Dec 29 Python
Python代码实现删除一个list里面重复元素的方法
Apr 02 Python
CentOS6.9 Python环境配置(python2.7、pip、virtualenv)
May 06 Python
解决Python设置函数调用超时,进程卡住的问题
Aug 08 Python
浅析PyTorch中nn.Module的使用
Aug 18 Python
pytorch下大型数据集(大型图片)的导入方式
Jan 08 Python
python读取图像矩阵文件并转换为向量实例
Jun 18 Python
python某漫画app逆向
Mar 31 Python
Python的flask接收前台的ajax的post数据和get数据的方法
Apr 12 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
文章推荐系统(三)
2006/10/09 PHP
PHP基于php_imagick_st-Q8.dll实现JPG合成GIF图片的方法
2014/07/11 PHP
使用GDB调试PHP代码,解决PHP代码死循环问题
2015/03/02 PHP
php基于dom实现读取图书xml格式数据的方法
2017/02/03 PHP
php注册系统和使用Xajax即时验证用户名是否被占用
2017/08/31 PHP
ThinkPHP框架获取最后一次执行SQL语句及变量调试简单操作示例
2018/06/13 PHP
网站被恶意镜像怎么办 php一段代码轻松搞定(全面版)
2018/10/23 PHP
PHPStorm 2020.1 调试 Nodejs的多种方法详解
2020/09/17 NodeJs
IE7提供XMLHttpRequest对象为兼容
2007/03/08 Javascript
javascript与webservice的通信实现代码
2010/12/25 Javascript
Javascript writable特性介绍
2015/02/27 Javascript
JavaScript通过HTML的class来获取HTML元素的方法总结
2016/05/24 Javascript
js实现小窗口拖拽效果
2016/12/03 Javascript
javascript回调函数的概念理解与用法分析
2017/05/27 Javascript
AngularJS 中ui-view传参的实例详解
2017/08/25 Javascript
jQuery+vue.js实现的九宫格拼图游戏完整实例【附源码下载】
2017/09/12 jQuery
微信小程序ibeacon三点定位详解
2018/10/31 Javascript
node.js爬取中关村的在线电瓶车信息
2018/11/13 Javascript
JS实现页面数据懒加载
2020/02/13 Javascript
[46:47]2014 DOTA2国际邀请赛中国区预选赛5.21 LGD-CDEC VS NE
2014/05/22 DOTA
Flask SQLAlchemy一对一,一对多的使用方法实践
2013/02/10 Python
Linux下编译安装MySQL-Python教程
2015/02/02 Python
使用Python的Bottle框架写一个简单的服务接口的示例
2015/08/25 Python
python turtle库画一个方格和圆实例
2019/06/27 Python
Django实现网页分页功能
2019/10/31 Python
python正则表达式re.match()匹配多个字符方法的实现
2021/01/27 Python
番木瓜健康和保健产品第一大制造商:Herbal Papaya
2017/04/25 全球购物
海滩咖啡馆:Beach Cafe
2018/02/02 全球购物
医药代表个人的求职信分享
2013/12/08 职场文书
《得道多助,失道寡助》教学反思
2014/04/19 职场文书
护士演讲稿优秀范文
2014/04/30 职场文书
社区文艺活动方案
2014/08/19 职场文书
党的群众路线教育实践活动查摆剖析材料
2014/10/10 职场文书
2016年教师师德师风心得体会
2016/01/12 职场文书
Nginx反向代理多个服务器的实现方法
2021/03/31 Servers
MongoDB数据库常用的10条操作命令
2021/06/18 MongoDB