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中的实例方法、类方法和静态方法详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值