深入解析python中的例項方法 類方法和靜態方法

2022-10-03 12:54:10 字數 1700 閱讀 1676

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