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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

property classmethod staticmethod的用法

發(fā)布時間:2025/6/16 编程问答 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 property classmethod staticmethod的用法 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一:property的用法

1,@property 能夠?qū)⒁粋€方法偽裝成一個屬性,它并不會讓你的代碼有什么邏輯上的提高,只是從調(diào)用者的角度上換了一種方式,使之看起來更合理。調(diào)用方法從原來的的對象名.方法名(),變成了對象名.方法名。

class Person:def __init__(self,name,weight,height):self.name = nameself.__height = heightself.__weight = weight@propertydef bmi(self):return self.__weight / self.__height ** 2 p = Person('ads',70,1.75) print(p.bmi) View Code

2,方法偽裝成的屬性的修改

class Person:def __init__(self,n):self.__name = n # 私有的屬性了 @propertydef name(self):return self.__name@name.setter # 重要程度 ***def name(self,new_name):if type(new_name) is str:self.__name = new_nameelse:print('您提供的姓名數(shù)據(jù)類型不合法')p = Person('alex') print(p.name) #def name(self): p.name = 'alex_sb' #def name(self,new_name): print(p.name) #def name(self): View Code

3,方法偽裝成的屬性的刪除

class Person:def __init__(self,n):self.__name = n # 私有的屬性了@property # 重要程度 ****def name(self):return self.__name@name.deleterdef name(self):del self.__namep = Person('alex') print(p.name) del p.name View Code

ps:

@property --> func 將方法偽裝成屬性,只觀看的事兒

@func.setter --> func 對偽裝的屬性進行賦值的時候調(diào)用這個方法 一般情況下用來做修改

@func.deleter --> func 在執(zhí)行del 對象.func的時候調(diào)用這個方法 一般情況下用來做刪除 基本不用

二:classmethod的用法

1,@classmethod ,類方法,可以直接被類調(diào)用,不需要默認傳對象參數(shù),只需要傳一個類參數(shù)就可以了。

class Goods:__discount = 0.8def __init__(self,name,origin_price):self.name = nameself.__price = origin_price@propertydef price(self):return self.__price * Goods.__discount@classmethoddef change_discount(cls,new_discount):cls.__discount = new_discountGoods.change_discount(1) # 不依賴對象的方法 就應該定義成類方法 類方法可以任意的操作類中的靜態(tài)變量 # 如果要改變折扣 是全場的事情 不牽扯到一個具體的物品 所以不應該使用對象來調(diào)用這個方法 apple = Goods('apple',5) banana = Goods('banana',8) print(apple.price) print(banana.price) View Code

三:staticmethod的用法

當一個方法要使用對象的屬性時 就是用普通的方法

當一個方法要使用類中的靜態(tài)屬性時 就是用類方法

當一個方法要既不使用對象的屬性也不使用類中的靜態(tài)屬性時,就可以使用staticmethod靜態(tài)方法

class Student:def __init__(self,name):pass@staticmethoddef login(a):# login就是一個類中的靜態(tài)方法 靜態(tài)方法沒有默認參數(shù) 就當成普通的函數(shù)使用即可user = input('user :')if user == 'alex':print('success')else:print('faild')Student.login(1) View Code

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

轉(zhuǎn)載于:https://www.cnblogs.com/leiwei123/p/8874366.html

總結(jié)

以上是生活随笔為你收集整理的property classmethod staticmethod的用法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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