物件方法 靜態方法 類方法

2021-09-09 06:29:03 字數 1853 閱讀 6274

1、例項方法/物件方法

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

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

class people():

def hello(self):#self表示物件本身

print('hello word')

2、靜態本身

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

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

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

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

練習1:定義乙個靜態方法menu()

class game:

#靜態方法

@staticmethod

def show_menu():

print('開始按鈕')

print('暫停按鈕')

print('停止按鈕')

#類名.靜態方法名稱()

game.show_menu()

#物件名.靜態方法名稱() 不推薦使用,麻煩

game=game()

game.show_menu()

3、類方法

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

1)在方法上面新增@classmethod

2)方法的引數為cls也可以是其他名稱,但是 一般預設為cls

3)cls指向 類物件(也就是goods)

4)應用場景:當乙個方法中只涉及到靜態屬性的時候可以使用類方法(類方法用來修飾類屬性)。

5)使用可以是:物件名.類方法名。或者是:類名.類方法名

person.test()

print('--------')

per=person()

per.test()

練習1:使用類方法對商品進行打折扣

class goods:

__discount=1#折扣 預設是1

def __init__(self,name,price):

self.name=name

self.__price=price

#實際**

@property

def price(self)

return self.__price*self.__diccount

#打折扣------>普通方法

#def chang_discount(self,new_discount):

self.__discount=new_discount

@classmethod

def chang_discount(cls,new_discount):

cls.__discount=new_discount

def test(self):

pirnt('***')

#給蘋果的香蕉打八折

#建立蘋果

#打八折

#建立香蕉

banana=goods('香蕉',8)

print(banana.price)

banana.chang_diccount(0.8)

print(banana.price)

#使用普通方法,每一次都是需要打折

2、使用類方法

goods.chang_discont(0.8)#只需調動乙個即可

banana=goods('香蕉',8)

print(banana.price)```

python 類方法 物件方法 靜態方法

1 我們已經討論了類 物件可以擁有像函式一樣的方法,這些 物件方法與函式的區別只是乙個額外的 self 變數 coding utf 8 usr bin python filename method.py class person grade 1 def init self,name self.nam...

python 類方法 物件方法 靜態方法

1 我們已經討論了類 物件可以擁有像函式一樣的方法,這些物件方法與函式的區別只是乙個額外的self變數 coding utf 8 usr bin python filename method.py class person grade 1 def init self,name self.name n...

物件方法的類方法和靜態方法

class animal object leg 四隻腳 definit self,name,colour self.name name self.colour colour staticmethod def run print 喜歡奔跑 classmethod def eat cls print c...