深入解析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 01 Python
Python中的包和模块实例
Nov 22 Python
使用Pyrex来扩展和加速Python程序的教程
Apr 13 Python
Python使用requests提交HTTP表单的方法
Dec 26 Python
解决python给列表里添加字典时被最后一个覆盖的问题
Jan 21 Python
Python supervisor强大的进程管理工具的使用
Apr 24 Python
python3调用windows dos命令的例子
Aug 14 Python
Python使用APScheduler实现定时任务过程解析
Sep 11 Python
python 利用turtle库绘制笑脸和哭脸的例子
Nov 23 Python
Python多线程Threading、子线程与守护线程实例详解
Mar 24 Python
ipython jupyter notebook中显示图像和数学公式实例
Apr 15 Python
python中tab键是什么意思
Jun 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 文件编程综合案例-文件上传的实现
2013/07/03 PHP
PHP 如何利用phpexcel导入数据库
2013/08/24 PHP
php计算两个坐标(经度,纬度)之间距离的方法
2015/04/17 PHP
Zend Framework教程之连接数据库并执行增删查的方法(附demo源码下载)
2016/03/21 PHP
PHP通过引用传递参数用法分析
2016/12/01 PHP
PHP实现的获取文件mimes类型工具类示例
2018/04/08 PHP
PHP实现通过strace定位故障原因的方法
2018/04/29 PHP
php从数据库中获取数据用ajax传送到前台的方法
2018/08/20 PHP
PHP的mysqli_thread_id()函数讲解
2019/01/24 PHP
javascript的原生方法获取数组中的最大(最小)值
2012/12/19 Javascript
js查找某元素中的所有图片地址的方法
2014/01/16 Javascript
一个简单的实现下拉框多选的插件可移植性比较好
2014/05/05 Javascript
IE6 hack for js 集锦
2014/09/23 Javascript
JavaScript常用基础知识强化学习
2015/12/09 Javascript
利用Angular.js限制textarea输入的字数
2016/10/20 Javascript
微信公众号菜单配置微信小程序实例详解
2017/03/31 Javascript
JS实现方形抽奖效果
2018/08/27 Javascript
JavaScript数据结构与算法之检索算法实例分析【顺序查找、最大最小值、自组织查询】
2019/02/22 Javascript
详解Nodejs get获取远程服务器接口数据
2019/03/26 NodeJs
一篇文章,教你学会Vue CLI 插件开发
2019/04/17 Javascript
基于JavaScript伪随机正态分布代码实例
2019/11/07 Javascript
使用vue-cli3+typescript的项目模板创建工程的教程
2020/02/28 Javascript
python中常用检测字符串相关函数汇总
2015/04/15 Python
举例简单讲解Python中的数据存储模块shelve的用法
2016/03/03 Python
python http接口自动化脚本详解
2018/01/02 Python
python自动发送测试报告邮件功能的实现
2019/01/22 Python
Pytorch之finetune使用详解
2020/01/18 Python
详解python的xlwings库读写excel操作总结
2021/02/26 Python
详解使用双缓存解决Canvas clearRect引起的闪屏问题
2019/04/29 HTML / CSS
美国棒球装备和用品商店:Baseball Savings
2018/06/09 全球购物
潘多拉珠宝英国官方网上商店:PANDORA英国
2018/06/12 全球购物
应届生高等护理求职信
2013/10/12 职场文书
申报职称专业技术个人的自我评价
2013/12/12 职场文书
物业管理专业自荐信
2014/07/01 职场文书
单位同意报考证明
2015/06/17 职场文书
vue如何实现关闭对话框后刷新列表
2022/04/08 Vue.js