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

歡迎訪問 生活随笔!

生活随笔

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

python

Python-类基础

發(fā)布時(shí)間:2024/1/17 python 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python-类基础 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
# 接口類(抽象類) from abc import ABCMeta,abstractmethod # 接口類,用于規(guī)定:繼承此類的派生類,必須有什么方法 class PayMeta(metaclass=ABCMeta):# 加上裝飾器@abstractmethod,代表繼承PayMeta類的派生類中必須有pay方法,否者報(bào)錯。 @abstractmethoddef pay(self): passclass Alipay(PayMeta):def __init__(self,money):self.money = moneydef pay1(self):print('使用支付寶,支付了<%s>.'%self.money)def pay(self):print('使用支付寶,支付了<%s>.'%self.money) def pay(obj):obj.pay() a1 = Alipay(500) pay(a1) 接口類 # 類的私有字段、方法 # 在字段名前加上__該字段就成為了私有字段,只能在類的內(nèi)部訪問。就算是派生類(子類)也無法訪問 ''' 私有字段的實(shí)現(xiàn)原理,在Python解釋器讀到__開頭的字段時(shí),會給該字段改名,改為 ‘_類名__字段名’,所以使用_類名__字段名 這個可以在任何地方訪問私有字段,但是不推薦這樣訪問私有方法也是同理注:在Python解釋器從上到下讀取類代碼的時(shí)候,只要遇到私有字段都會將名字改為‘_類名__字段名’,不管是調(diào)用還是定義'''class A:__name = '類的私有字段'def __f1(self):print('__f1')def f2(self):self.__f1() class B(A):def fun(self):print(self._A__name)b1 = B() b1.fun() a1 = A() a1.f2()# 類的私有方法 class Parent():def __func(self):print('in Parent func Parent的私有方法')def __init__(self):self.__func()class Son(Parent):def __fun(self):print('in Son func Son的私有方法')son1 = Son()# 類的私有對象屬性 class A:__fun = 0def __init__(self,age):self.__arg = '類的私有靜態(tài)對象屬性'self.__age = agedef func(self):print(self.__arg)print(self.__age) # def __fun(self): # print(666) a1 = A(12) print(A.__dict__) a1.func() 類的私有方法、字段 # 創(chuàng)建一個類,計(jì)算BMI指數(shù) ''' @property裝飾器 property 可以讓一個方法,偽裝成屬性使用。下面是示例''' class Bmi:def __init__(self,weight,hight,name):self.weight = weightself.hight = hightself.name = name@propertydef bmi(self):b = self.weight / self.hight ** 2if b < 18.5:return '《Name:%s BMI:%s》過輕:低于:18.5'%(self.name,format(b,'0.2f'))elif b <= 23.9:return '《Name:%s BMI:%s》正常:18.5~23.9之間'%(self.name,format(b,'0.2f'))elif b <= 27:return '《Name:%s BMI:%s》過重:24~27之間'%(self.name,format(b,'0.2f'))elif b <= 32:return '《Name:%s BMI:%s》肥胖:28~32之間'%(self.name,format(b,'0.2f'))else:return '《Name:%s BMI:%s》非常肥胖:高于32'%(self.name,format(b,'0.2f'))bmi = Bmi(73,1.77,'kkk') print(bmi.bmi) @property屬性 # property 屬性的修改 ''' @property裝飾器 property 可以讓一個方法 偽裝成屬性使用。偽裝屬性的修改 @需要修改的屬性.setter 下面是示例注: 要使用 setter 裝飾器 必須要存在@property ''' class A:def __init__(self,name,age):self.__name = nameself.__age = age# 查看屬性 @property def age(self):return self.__age# 修改屬性 @age.setter def age(self,a1): self.__age = a1 if isinstance(a1,int) else self.__age# 刪除屬性 @age.deleterdef age(self):del self.__agea1 = A('kkk',28) print(a1.age) a1.age = a1.age + 1 print(a1.age) del a1.age property 屬性的修改(setter、deleter) # 類方法class A:def func(self):print(self)@classmethod def func1(cls):# cls 就是 A 這個類print('傳入的cls',cls)return cls()a1 = A.func1() a1.func() # 對象調(diào)用類方法,自動傳入的cls也是類本身。 a2 = A() a2.func1() ''' 類方法的使用場景1.類中 有些方法不需要對象參與 2.對類中的靜態(tài)變量進(jìn)行改變,要用類方法 3.在父類中獲取,子類類空間''' # 在父類中獲取,子類類空間 class A:@classmethoddef func(cls):print(cls) class B(A):pass B.func() 類方法 classmethod # 靜態(tài)方法 ''' 靜態(tài)方法:沒有self,cls 不用默認(rèn)傳入 對象和類 ''' class A:@staticmethoddef func():print(666) A.func() 類的靜態(tài)方法

?

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

總結(jié)

以上是生活随笔為你收集整理的Python-类基础的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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