本文目錄一覽:
- 1、Python下表是某水果店的水果庫存情況統計表,請完成以下任務:名稱 數量 價格獼?
- 2、Python的類和對象入門
- 3、Python面向對象編程題
- 4、python 面向對象基礎
- 5、python之面向對象
- 6、Python中的面向對象(進階)
Python下表是某水果店的水果庫存情況統計表,請完成以下任務:名稱 數量 價格獼?
fruits=[“獼猴桃”,125,”蘋果”,315,”香蕉”,80,”草莓”,50,”葡萄”,70,”砂糖橘”,200]
prices=[15,8,5,30,12,6]
all_listx=fruits+prices
for x in range(1,12,2):
if all_listx[x] 100:
print(all_listx[x-1])
望採納
Python的類和對象入門
本文來說說Python中的類與對象,Python這門語言是無處不對象,如果你曾淺要了解過Python,你應該聽過Python是一種面向對象編程的語言,所以你經常可能會看到面向「對象」編程這類段子,而面向對象編程的語言都會有三大特徵:封裝、繼承、多態。
我們平時接觸到的很多函數、方法的操作都具有這些性質,我們只是會用,但還沒有去深入了解它的本質,下面就介紹一下關於類和對象的相關知識。
封裝這個概念應該並不陌生,比如我們把一些數據封裝成一個列表,這就屬於數據封裝,我們也可以將一些代碼語句封裝成一個函數方便調用,這就是代碼的封裝,我們也可以將數據和代碼封裝在一起。用術語表示的話,就是可以將屬性和方法進行封裝,從而得到對象。
首先我們可以定義一個類,這個類中有屬性和方法,但有的夥伴會比較好奇,屬性和方法不是會封裝成對象嘛,為什麼又變成類了?舉個例子,類就好比是一個毛坯房,而對象是在毛坯房的基礎上改造成的精裝房。
在類定義完成時就創建了一個類對象,它是對類定義創建的命名空間進行了一個包裝。類對象支持兩種操作:屬性引用和實例化。
屬性引用的語法就是一般的標準語法:obj.name。比如XiaoMing.height和XiaoMing.run就是屬性引用,前者會返回一條數據,而後者會返回一個方法對象。
這裡也支持對類屬性進行賦值操作,比如為類中的weight屬性賦予一個新值。
而類的實例化可以將類對象看作成一個無參函數的賦值給一個局部變量,如下:
ming就是由類對象實例化後創建的一個實例對象,通過實例對象也可以調用類中的屬性和方法。
類在實例化過程中並不都是像上面例子一樣簡單的,一般類都會傾向將實例對象創建為有初始狀態的,所以在類中可能會定義一個__init__的魔法方法,這個方法就可以幫助接收、傳入參數。
而一個類如果定義了__init__方法,那麼在類對象實例化的過程中就會自動為新創建的實例化對象調用__init__方法,請看下面這個例子。
可以看到在__init__()中傳入了參數x和y,然後在print_coor中需要接收參數x和y,接下來通過實例化這個類對象,驗證一下參數是否能通過__init__()傳遞到類的實例化操作中。
所謂繼承就是一個新類在另一個類的基礎上構建而成,這個新類被稱作子類或者派生類,而另一個類被稱作父類、基類或者超類,而子類會繼承父類中已有的一些屬性和方法。
比如上面這個例子,我並沒有將list_定義成一個列表,但它卻能調用append方法。原因是類Mylist繼承於list這個基類,而list_又是Mylist的一個實例化對象,所以list_也會擁有父類list擁有的方法。當然可以通過自定義類的形式實現兩個類之間的繼承關係,我們定義Parent和Child兩個類,Child中沒有任何屬性和方法,只是繼承於父類Parent。
當子類中定義了與父類中同名的方法或者屬性,則會自動覆蓋父類對應的方法或屬性,還是用上面這個例子實現一下,方便理解。
可以看到子類Child中多了一個和父類Parent同名的方法,再實例化子類並調用這個方法時,最後調用的是子類中的方法。Python中繼承也允許多重繼承,也就是說一個子類可以繼承多個父類中的屬性和方法,但是這類操作會導致代碼混亂,所以大多數情況下不推薦使用,這裡就不過多介紹了。
多態比較簡單,比如定義兩個類,這兩個類沒有任何關係,只是兩個類中有同名的方法,而當兩個類的實例對象分別調用這個方法時,不同類的實例對象調用的方法也是不同的。
上面這兩個類中都有introduce方法,我們可以實例化一下兩個類,利用實例對象調用這個方法實現一下多態。
判斷一個類是否是另一個類的子類,如果是則返回True,反之則返回False。
需要注意的有兩點:
判斷一個對象是否為一個類的實例對象,如果是則返回True,反之則返回False。
需要注意的有兩點:
判斷一個實例對象中是否包含一個屬性,如果是則返回True,反之則返回False。
需要注意的是第二個參數name必須為字符串形式傳入,如果不是則會返回False。
Python面向對象編程題
class Time:
def __init__(self, hours, minutes, seconds):
self.__hours = hours
self.__minutes = minutes
self.__seconds = seconds
def hours(self):
return self.__hours
def minutes(self):
return self.__minutes
def seconds(self):
return self.__seconds
def __add__(self, other): # 定義加法行為
pass
def __sub__(self, other): # 定義減法行為
pass
def __eq__(self, other): # 定義等於號行為
pass
def __lt__(self, other): # 定義小於號行為
pass
寫出大致框架,自行完善後面的四個魔法方法
python 面向對象基礎
class Test:
def setdata(self, value):
self.data = value
def display(self):
print self.data
x = Test()
y = Test()
x.setdata(“test”)
y.setdata(123456)
x.display()
y.display()
=======================
x.setdata = “test”
y.setdata = 123456
修改為
x.setdata(“test”)
y.setdata(123456)
這樣就行了。
原因是Test對象中沒有setdata屬性,只有setdata方法,方法是通過setdata()這種形式調用的。
希望能對你有所幫助!
python之面向對象
面向對象(OOP)是一種對現實世界理解和抽象的方法,對象的含義是指在現實生活中的具體事物, 一切皆對象 ,Python 是一門面向對象的語言,面向對象編程簡單來說就是一種 封裝代碼 的方式。
Python 中類的定義使用 class 關鍵字定義類,語法如下所示:
舉例,定義一個類 Cat
構造方法 init() 會在類實例化時自動調用。無論構造方法還是其他方法都需要將 self 作為第一個參數,它代表類的實例。
類創建好後,可以直接通過類名訪問屬性,格式為: 類名.屬性名 ,比如我們訪問 Cat 類的 color 屬性,如下所示:
創建對象也稱類的實例化,比如我們通過 Cat 類創建對象,如下所示:
創建好對象後,使用它訪問屬性和調用方法了,如下所示:
內部私有屬性和方法是可以被訪問和調用的。
我們來一起看個例子,如下所示:
輸出結果:
Python 支持類的繼承,而且支持多繼承,語法格式為:
示例如下所示:
如果繼承的父類方法不能滿足我們的需求,這時子類可以 重寫 父類方法,如下所示:
Python中的面向對象(進階)
一、實例方法,類方法,靜態方法
我們首先寫一個類,裏面包含這三種方法。
可以看到,我們用到了兩個裝飾器。
我們用類和實例分別調用下類方法
我們用類和實例分別調用下靜態方法
靜態方法其實就是把一個普通的函數寫在類里,與直接在外層寫一個函數是一樣的,本質上是一個函數。
為了方便理解,我們分別打印下這些方法的類型
通過type()查看對象是方法還是函數
此外,還可以通過inspect模塊判斷某個對象是否是某種類型,返回布爾值。
用法
小Tips:概念理解
直接def定義的,我們叫做函數
把函數放到類里,我們叫做方法
方法可以通過裝飾器staticmethod轉為(放在方法里的)函數
繼承
一個類繼承另一個類時,會自動獲得另一個類的所有屬性和方法,被繼承的類稱之為父類,新類稱為子類。子類擁有父類所有的屬性和方法,並且可以定義自己的屬性和方法
我們以上邊的Rectangle類為父類來試一下
1)完全繼承
可以看到,子類完全繼承父類後,可以直接調用父類的所有方法。
2)部分繼承
部分繼承:繼承父類後,修改父類的同名方法
我們試一下,Square繼承Rectangle後,修改__init__()方法
3)拓展父類的方法
在保留父類中某個方法的代碼同時,對方法進行拓展
可以在方法中加入”super().方法名”來實現
4)@property
原創文章,作者:GUHJ,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/149021.html