深入解析Python中的实例方法、类方法和静态方法
本文详细解析Python中实例方法、类方法和静态方法的区别与应用。通过具体代码示例,说明实例方法需实例化调用,类方法通过@classmethod修饰并接收类对象,静态方法通过@staticmethod修饰且与类状态无关。掌握这三类方法的定义、参数及调用方式,有助于编写更规范的Python面向对象代码。
实例方法/对象方法
1、实例方法/对象方法
实例方法(或称对象方法)是指在类内部定义的常规方法。这类方法必须在类被实例化为对象后,由该实例对象进行调用。其定义的关键特征是,方法的第一个形参必须接收对象本身(通常命名为self)。

静态方法
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 指向当前类对象。 (4). 应用场景:当方法仅涉及静态属性或需要修改类属性时,适合使用类方法。 (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中的实例方法、类方法和静态方法详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对本站网站的支持!
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













