1、例項方法/物件方法
例項方法或者叫物件方法,指的是我們在類中定義的普通方法。
只有例項化物件之後才可以使用的方法,該方法的第乙個形參接收的一定是物件本身
2www.cppcns.com、靜態方法
(1).格式:在方法上面新增 www.cppcns.com@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, namewww.cppcns.com, 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.012.8
5.08.0
以上所述是小編給大家介紹的python中的例項方法、類方法和靜態方法詳解整合,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回覆大家的。在此也非常感謝大家對我們**的支援!
本文標題: 深入解析python中的例項方法、類方法和靜態方法
本文位址: /jiaoben/python/254333.html
深入解析Python中的 builtins
如果你已經學習了包,模組這些知識了。你會不會有好奇 python為什麼可以直接使用一些內建函式,不用顯式的匯入它們,比如 str int dir 原因是python直譯器第一次啟動的時候 builtins 就已經在命名空間了 note 有s 進shell看看 globals 你可以再次匯入 buil...
深入解析Python程式設計中JSON模組的使用
json編碼支援的基本資料型別為 none bool int float 和 str 以及包含這些型別資料的lists,tuples和dictionaries。對於dictionaries,keys需要是字串型別 字典中任何非字串型別的key在編碼時會先轉換為字串 為了遵循json規範,你應該只編碼...
python解析xml例項
如下,乙個銀行卡打標籤後匯出的資料 上面的 無法保留格式,還是截張圖吧 1 importos2 import sys3 import xml.etree.celementtree as et45 6 from path card 輸入資料夾 7 to path cardout 輸出資料夾 8 fil...