python中類和物件的概念
python中的函式和普通函式的對比
python類語法的初識
一、python中類和物件的概念
我們把一類相同的事物叫做類,其中用相同的屬性(其實就是變數)描述,裡面封裝了相同的方法。比如,汽車是乙個類,它包括**、品牌等屬性。倘若要實現列印100種車的屬性的功能,那麼可以用函式實現,也可以用類來實現。
#####函式實現
defcarinfo
(type
,price)
:print
("the car's type %s,price:%d"%(
type
,price)
)carinfo(
'passat'
,250000
)carinfo(
'ford'
,280000
)######類實現
class
car:
def__init__
(self,
type
,price)
: self.
type
=type
self.price = price
defprintcarinfo
(self)
:print
("the car's info in class:type %s,price:%d"
%(self.
type
,self.price)
)passat = car(
'passat'
,250000
)ford = car(
'ford'
,250000
)passat.printcarinfo(
)ford.printcarinfo(
)
這說明了什麼呢?其實類能實現的功能,函式幾乎都可以實現,我們都知道c語言中也是沒有物件的,但是它還是很膩害的寫出了linux作業系統!!!知道了這一點,我們就知道,類是讓我們的程式錦上添花的產物,並沒那麼可怕。
現在來先認識一下類:
上述例子中,「car」就是「類」,表示「車」這一類事物,它有很多屬性,比如型號、**等等。而passat和ford都是車的一種,它是具體的,有固定的品牌和**,然而等號左邊的passat是car的乙個物件,ford是car的另乙個物件。
二、python中的函式和普通函式的對比
類中的函式稱之為方法。
從上述例子中,類能實現的功能我們用函式也完全可以實現,但是我們可以看到他們的實現方式是不同的,現在我們就逐一對比一下。先上圖!
兩者的差別在哪呢?
1.我們看到兩個方法的縮排不同,printcarinfo這個方法是被包裹在car這個類裡面的
2.兩個函式的引數是不同的,carinfo方法很直接的傳了cartype和price這兩個引數,而在printcarinfo方法中只傳遞了乙個self。這也直接導致了後面在函式中使用變數的時候也是不同的。
三、python類語法的初識
使用類中的方法
carinfo中的方法我們都知道是什麼了,那麼printcarinfo裡面傳遞的這個『self』是個什麼呢?
在這個方法的定義中,形參self必不可少,還必須位於其他形參的前面。每個與類相關聯的方法呼叫都自動傳遞實參self,它是乙個指向例項本身的引用,讓例項能夠訪問類中的屬性和方法。當我們使用passat這個物件去呼叫printcarinfo這個方法的時候,其實是做了這樣一部操作printcarinfo(passat),把passat這個物件傳給了printcarinfo方法,passat這個物件又包含了兩個屬性cartype、price,我們在python規定這樣使用乙個物件中的變數:passat.cartype、passat.price。我們呼叫函式時傳的passat物件的引數passat.cartype、passat.price被類中printcarinfo函式以self的身份接收,所以我們在使用引數的時候自然就變成了self.cartype、self.price。
類的初始化
passat = car(
'passat'
,250000)
ford = car(
'ford'
,250000)
其實這兩句話每句話都完成了兩個功能:第一,從car類中例項化出了乙個物件——passat/ford;第二:給新物件的屬性賦了值。其實passat = car(『passat』,25000)還可以寫成這樣:
類中方法的定義和使用
從圖中很明顯就可以看出,carinfo中的引數在printcarinfo方法中的換成了self,在方法的呼叫中,就是用self.屬性名來呼叫了。
再來看方法的呼叫,普通函式的呼叫直接呼叫就可以了,而類中的函式呼叫之前應該先進行類的例項化——建立乙個物件,然後給這個物件的屬性賦值,然後才可以呼叫類中的方法,呼叫方式是 物件名.方法名()。
今天就到此結束啦!
參考部落格:
初識python中的類與物件
在生活中,我們走在路邊,看到一輛車,大腦中首先想到的是 這是一輛車,然後才是這是一輛什麼牌子的車 在這裡,我們就用到了程式設計中的類的概念。同樣的,看到一條小狗,也會先想到這是一條狗,然後會想到這是一條什麼品種的狗。在程式設計中,把同一類的事物叫做類,把這個類裡所共有的特徵總結歸納並定義出來,就是類...
C 初識類與物件
在c 中,結構體不僅可以定義變數時也可以定義函式。同樣的結構體c 中,將會用class代替struct class student 類的兩中定義方式 1.宣告和定義都在類體中 class student private int age char name 20 char gender 3 2.宣告放...
物件導向之初識類與物件
在一片蒼茫的草地上生活著一群無憂無慮的小豬,他們有著粉粉嫩嫩或者黑不溜秋的 圓圓的鼻孔 大大的耳朵,非常惹人喜愛。定睛一看,有的豬正在舒適的窩裡睡覺,有的正在夕陽下奔跑 國產的豬就是勤快 有的正為豬生大事而在談戀愛。那麼問題來了,這跟類和物件有什麼關係呢?對,你可能猜到了,我們將這群小豬抽象成為豬類...