python中的例項方法 類方法和靜態方法

2021-09-09 06:33:21 字數 1542 閱讀 3402

3、類方法

例項方法或者叫物件方法,指的是我們在類中定義的普通方法。

只有例項化物件之後才可以使用的方法,該方法的第乙個形參接收的一定是物件本身

(1).格式:在方法上面新增 @staticmethod

(2).引數:靜態方法可以有引數也可以無引數

(3).應用場景:一般用於和類物件以及例項物件無關的**。

(4).使用方式: 類名.類方法名(或者物件名.類方法名)。

定義乙個靜態方法

class game:

@staticmethod

def menu():

print('------')

print('開始[1]')

print('暫停[2]')

print('退出[3]')

game.menu()

無需例項化,可以通過類直接呼叫的方法,但是方法的第乙個引數接收的一定是類本身

(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)

goods.change_discount(0.8)

print(banana.finally_price)

goods.change_discount(0.5)

print(banana.finally_price)

輸出為:

8.0

12.8

5.08.0

python中的例項方法 類方法 靜態方法

class test object a 1 def init self,a self.a a definstance print self print self.a classmethod defclass fun cls print cls.a staticmethod defstatic fun...

Python 中的例項方法 類方法 靜態方法的區別

1 關於引數的區別 例項方法 定義例項方法是最少有乙個形參 例項物件,通常用 self 類方法 定義類方法的時候最少有乙個形參 類物件,通常用 cls 靜態方法 定義靜態方法的時候可以不定義形參 2 關於方法定義時候新增裝飾器的區別 例項方法 不需要新增裝飾器 類方法 需要新增裝飾器 classme...

python中例項方法 類方法 靜態方法的區別

不說廢話,直接上 class test object a a definstance fun self print self.a print self print self.class fun classmethod defclass fun cls print cls.a print cls pr...