深入解析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 从远程服务器下载东西的代码
Feb 10 Python
python发送arp欺骗攻击代码分析
Jan 16 Python
Python中的os.path路径模块中的操作方法总结
Jul 07 Python
python3使用PyMysql连接mysql数据库实例
Feb 07 Python
python之super的使用小结
Aug 13 Python
使用Python3内置文档高效学习以及官方中文文档
May 19 Python
对django2.0 关联表的必填on_delete参数的含义解析
Aug 09 Python
python应用文件读取与登录注册功能
Sep 23 Python
Django项目基础配置和基本使用过程解析
Nov 25 Python
pytorch 求网络模型参数实例
Dec 30 Python
Python字符串函数strip()原理及用法详解
Jul 23 Python
Python何绘制带有背景色块的折线图
Apr 23 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
MYSQL环境变量设置方法
2007/01/15 PHP
php json_encode()函数返回json数据实例代码
2014/10/10 PHP
PHP异步进程助手async-helper
2018/02/05 PHP
PHP pthreads v3下同步处理synchronized用法示例
2020/02/21 PHP
laravel框架使用FormRequest进行表单验证,验证异常返回JSON操作示例
2020/02/18 PHP
jquery实现兼容浏览器的图片上传本地预览功能
2013/10/14 Javascript
深入理解Javascript作用域与变量提升
2013/12/09 Javascript
jQuery浏览器CSS3特写兼容实例
2015/01/19 Javascript
JQuery中上下文选择器实现方法
2015/05/18 Javascript
JS中的数组转变成JSON格式字符串的方法
2017/05/09 Javascript
vue2.0 中#$emit,$on的使用详解
2017/06/07 Javascript
vue+swiper实现侧滑菜单效果
2017/12/28 Javascript
Vuex提升学习篇
2018/01/11 Javascript
js+html实现周岁年龄计算器
2019/06/25 Javascript
js实现课堂随机点名系统
2019/11/21 Javascript
vue中使用v-for时为什么不能用index作为key
2020/04/04 Javascript
vue项目或网页上实现文字转换成语音播放功能
2020/06/09 Javascript
Vue3为什么这么快
2020/09/23 Javascript
[01:15:00]LGD vs Mineski Supermajor 胜者组 BO3 第一场 6.5
2018/06/06 DOTA
从零学Python之引用和类属性的初步理解
2014/05/15 Python
django使用xlwt导出excel文件实例代码
2018/02/06 Python
Python基于聚类算法实现密度聚类(DBSCAN)计算【测试可用】
2018/12/26 Python
计算pytorch标准化(Normalize)所需要数据集的均值和方差实例
2020/01/15 Python
CSS3点击按钮实现背景渐变动画效果
2016/10/19 HTML / CSS
英国可持续奢侈品包包品牌:Elvis & Kresse
2018/08/05 全球购物
Tuckernuck官网:经典的美国品质服装、鞋子和配饰
2021/01/11 全球购物
2014年计生标语
2014/06/23 职场文书
会计试用期自我评价怎么写
2014/09/18 职场文书
经费申请报告
2015/05/15 职场文书
2015年教师见习期工作总结
2015/05/20 职场文书
大学生读书笔记范文
2015/07/01 职场文书
学会感恩主题班会
2015/08/12 职场文书
python中取整数的几种方法
2021/11/07 Python
Mysql多层子查询示例代码(收藏夹案例)
2022/03/31 MySQL
星际争霸 Light vs Action 一场把教主看到鬼畜的比赛
2022/04/01 星际争霸
TV动画《八十龟酱观察日记》第四季宣传PV公布
2022/04/06 日漫