深入解析python中的实例方法、类方法和静态方法
作者:李嘉豪554 时间:2022-07-23 09:05:57
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,静态,方法,实例
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
对Python3中bytes和HexStr之间的转换详解
2022-12-10 22:15:36
解读python基于netconf协议获取网元的数据
2023-06-29 20:26:23
![](https://img.aspxhome.com/file/2023/7/60297_0s.jpg)
如何绝对获知浏览器类型?
2009-12-16 18:58:00
PHP中phar包的使用教程
2023-11-09 19:55:52
Django原生sql也能使用Paginator分页的示例代码
2023-11-09 10:00:06
Python之日期与时间处理模块(date和datetime)
2023-09-29 12:53:06
![](https://img.aspxhome.com/file/2023/2/63232_0s.png)
Asp实现伪静态的方法
2007-09-29 21:27:00
php下检测字符串是否是utf8编码的代码
2023-11-15 16:00:59
Python编程使用NLTK进行自然语言处理详解
2022-07-05 11:47:06
![](https://img.aspxhome.com/file/2023/1/68281_0s.jpg)
asp如何用JMail同时给多人发信?
2010-06-12 12:52:00
如何用C代码给Python写扩展库(Cython)
2023-06-08 17:06:32
![](https://img.aspxhome.com/file/2023/6/72166_0s.jpg)
优化你的ASP程序及优化网页
2007-10-06 23:02:00
Python调用.NET库的方法步骤
2022-07-02 06:46:17
10个顶级Python实用库推荐
2023-08-27 17:41:46
![](https://img.aspxhome.com/file/2023/8/65518_0s.jpg)
对于任意的XML的遍历
2008-09-05 17:11:00
让ThinkPHP支持大小写url地址访问的方法
2023-11-17 02:28:37
如何实现文件上传并自动归类功能?
2010-05-24 18:37:00
贝聿铭写给年轻设计师的十点忠告
2010-01-24 18:46:00
![](/images/sg_trans.gif)
BOF、EOF 属性
2009-05-11 12:37:00
模拟兼容性的 inline-block 属性
2008-04-08 12:37:00