日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

Python中类方法、类实例方法、静态方法,私有属性和私有方法有何区别?

發(fā)布時間:2024/4/11 python 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python中类方法、类实例方法、静态方法,私有属性和私有方法有何区别? 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

類方法

是類對象的方法,在定義時需要在上方使用 @classmethod 進(jìn)行裝飾,形參為cls,表示類對象,類對象和實(shí)例對象都可調(diào)用。

使用格式:

對類的屬性進(jìn)行操作,就要用類的方法。

@classmethoddef 方法名(cls)

調(diào)用類方法

類名.方法名()

代碼:

class Student:money = 10 # 類的屬性 內(nèi)存中只有一份,無論你創(chuàng)建多少個對象,把數(shù)據(jù)共享給對象# 修改類的屬性,類的方法@classmethoddef change(cls):cls.money -= 2 # 修改類的屬性 cls 類屬性print(cls.money)one = Student() # 類名.方法名() 推薦 Student.change() two = Student() # 對象.方法名() two.change()

測試結(jié)果:

8
6

靜態(tài)方法

是一個任意函數(shù),在其上方使用 @staticmethod 進(jìn)行裝飾,可以用對象直接調(diào)用,靜態(tài)方法實(shí)際上跟該類沒有太大關(guān)系。沒有傳遞一個對象self,也沒有傳遞類對象cls
節(jié)省內(nèi)存資源 不用傳遞參數(shù)。

使用格式:

@staticmethoddef 方法名()

代碼:

class Welcome:@staticmethod # 靜態(tài)方法,不用傳遞參數(shù)def show():print("*" * 10)print("歡迎使用該后臺系統(tǒng)")# 靜態(tài)方法的調(diào)用 # 類名.方法名() Welcome.show()

類實(shí)例方法

是類實(shí)例化對象的方法,只有實(shí)例對象可以調(diào)用,形參為self,指代對象本身;

代碼:

class Car:def __init__(self, name, loss): # loss [價格,油耗,公里數(shù)]self.name = nameself.loss = lossdef getName(self):return self.namedef getPrice(self):# 獲取汽車價格return self.loss[0]def getLoss(self):# 獲取汽車損耗值return self.loss[1] * self.loss[2]Bmw = Car("寶馬", [60, 9, 500]) # 實(shí)例化一個寶馬車對象 print(getattr(Bmw, "name")) # 使用getattr()傳入對象名字,屬性值。 print(dir(Bmw)) # 獲Bmw所有的屬性和方法

運(yùn)行結(jié)果:

寶馬
[‘class’, ‘delattr’, ‘dict’, ‘dir’, ‘doc’,
eq’, ‘format’, ‘ge’, ‘getattribute’, ‘gt’,
hash’, ‘init’, ‘init_subclass’, ‘le’, ‘lt’,
module’, ‘ne’, ‘new’, ‘reduce’, ‘reduce_ex’,
repr’, ‘setattr’, ‘sizeof’, ‘str’,
subclasshook’, ‘weakref’, ‘getLoss’, ‘getName’, ‘getPrice’,
‘loss’, ‘name’]

私有屬性

如果在屬性名前面加了2個下劃線’__’,則表明該屬性是私有屬性,否則為公有屬性

class Dog:def __init__(self):self.__age = 10 one = Dog() print(one.__age)

私有方法

在方法名前面加了2個下劃線’’,是
私有方法。

class Work:def __show(self):print("大家好我的工作臺低了")one = Work() one.__show()

私有的屬性和私有的方法,在類里面使用

class Work:def __init__(self):self.__age = 10 # __屬性 在類的外部不能訪問def __show(self): # 私有的方法在類的外部不能訪問print(self.__age) # 私有的屬性,在類的外部不能訪問,在類的內(nèi)部可以訪問def look(self):self.__show() # 在類里面可以one = Work() # print(one.__age) #提示錯誤 # one.__show() #提示錯誤 one.look()

運(yùn)行結(jié)果:

10

總結(jié)

以上是生活随笔為你收集整理的Python中类方法、类实例方法、静态方法,私有属性和私有方法有何区别?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。