python的静态方法和类方法(深入解析python中的实例方法、类方法和静态方法)
类别:脚本大全 浏览量:2576
时间:2021-11-05 14:21:30 python的静态方法和类方法
深入解析python中的实例方法、类方法和静态方法1、实例方法/对象方法
实例方法或者叫对象方法,指的是我们在类中定义的普通方法。
只有实例化对象之后才可以使用的方法,该方法的第一个形参接收的一定是对象本身
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中的实例方法、类方法和静态方法详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对开心学习网网站的支持!
原文链接:https://blog.csdn.net/weixin_44251004/article/details/86499231#3_28
您可能感兴趣
- python eval函数原理(浅谈Python中eval的强大与危害)
- python 获取ip mac 地址(Python3获取电脑IP、主机名、Mac地址的方法示例)
- pythonredis列表(Python redis操作实例分析连接、管道、发布和订阅等)
- python获取股票每天k线(使用PyQtGraph绘制精美的股票行情K线图的示例代码)
- python栈和队列(Python 实现数据结构中的栈队列)
- python爬百度api有次数限制吗(对python借助百度云API对评论进行观点抽取的方法详解)
- python中list用法(Python数据类型之List列表实例详解)
- pythonssl版本(解决Python 使用h5py加载文件,看不到keys的问题)
- python虚拟环境的使用方法(详解python配置虚拟环境)
- python转换doc到pdf(利用python将图片版PDF转文字版PDF)
- python调用支付宝支付接口(python实现支付宝转账接口)
- python3.5 tkinter教程(解决python3.5 正常安装 却不能直接使用Tkinter包的问题)
- python pandas dataframe 查询(Python实现从SQL型数据库读写dataframe型数据的方法基于pandas)
- python中怎么实现登录程序(详解Python用户登录接口的方法)
- python ip代理池(Python 实现域名解析为ip的方法)
- python线程池如何实现同步(Python mutiprocessing多线程池pool操作示例)
- 融入小人物的喜怒哀乐,黄渤饰演的角色为什么让人观看时欲罢不能(融入小人物的喜怒哀乐)
- 《极限挑战》深访都市夜归人,夜间打工者体验,黄磊录完憔悴了(极限挑战深访都市夜归人)
- Google 推出了一个游戏生成器,让不会编程的你也能自己设计游戏(推出了一个游戏生成器)
- 二胎家庭老大爱闹情绪,用这招很有效(二胎家庭老大爱闹情绪)
- 一个30岁男人外遇失败的全过程(一个30岁男人外遇失败的全过程)
- 《无敌破坏王2》 不聊彩蛋,聊聊我从动画里看到的现实那些事儿(无敌破坏王2不聊彩蛋)
热门推荐
- thinkphp快速入门手册(从ThinkPHP3.2.3过渡到ThinkPHP5.0学习笔记图文详解)
- django怎么设置数据库(django配置连接数据库及原生sql语句的使用方法)
- pycharm导入turtle出现错误(解决Pycharm调用Turtle时 窗口一闪而过的问题)
- mongodb用户权限
- nginx https 域名配置(阿里云Nginx配置https实现域名访问项目图文教程)
- 数据库该不该用外键
- kettle替换sql语句(sql server定时作业调用Kettle job出错的快速解决方法)
- tftp服务器怎么设置(TFTP服务器是什么意思?)
- extjs中Toolbar工具栏
- sqlserver列数据拆分(SQL Server基础之行数据转换为列数据)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9