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...