Python學(xué)習(xí)總結(jié)【連載】(十一)
2018.06.26 Juttachen
概述
+ 36 類的概述
- 編程思想
- 類的概述和聲明
- 對象的的創(chuàng)建和調(diào)用
三十六狞膘、類的概述
1.編程思想
面向過程的編程:c (一步一步的,只有邏輯和過程)
a = 1
b = 2
print(a+b)
面向?qū)ο缶幊蹋簀ava,c++,oc,python等(有類語法)-->(以對象為工具實現(xiàn)功能)
# obj.sum(1,2)
函數(shù)式編程:c,java,python(以函數(shù)為工具實現(xiàn)功能)
def sum1(num1,num2):
return num1+num2
sum1(1,2)
2.類的概述
a.類
對具有相同屬性和相同功能(能做的事情--->函數(shù))的對象的集合袋狞,是抽象的。
b.對象
就是類的實例派撕,是具體的灶似。
例子:如果說車是一個類,樓下的那一輛紅色的轎車就是一個對象模庐。
如果說電腦是一個類烛愧,我桌上的黑色電腦就是一個對象。
3.類的聲明
a.格式:
class 類名:
類的內(nèi)容
class
python中聲明類的關(guān)鍵字
類名
標(biāo)識符掂碱,額外要求:1)首字母大寫 2)見名知意
冒號
固定格式怜姿,冒號后一個縮進(jìn)的內(nèi)容就是類的內(nèi)容
類的內(nèi)容:
1)類變量 (類屬性)
聲明在類中,但是在方法外的變量顶吮;要通過類去獲壬缟(屬于這個類共有的粪薛,通過類能讓其具體的屬性)
2)對象屬性
3)方法(構(gòu)造方法悴了,對象方法,類方法违寿,靜態(tài)方法)
方法:聲明在類中的函數(shù)就叫方法
聲明一個人對應(yīng)的類
class Person:
# count就是類變量(通過類去)
count = 61 #局部變量湃交,作用域是整個類
構(gòu)造方法init,名字固定
通過類創(chuàng)建對象的時候的時候藤巢,系統(tǒng)會自動的調(diào)用去初始化
self
1.類中所有的對象方法都會默認(rèn)有一個self參數(shù)搞莺,用來指向調(diào)用方法的對象(誰調(diào)用當(dāng)前這個方法就指向誰)
2.調(diào)用帶有self的方法,不需要給self傳參掂咒,系統(tǒng)會自動將方法調(diào)用者轉(zhuǎn)給它
def __init__(self,name1=''):
# 我們一般在這個地方去聲明對象的屬性
# name,age,gerder就是人這個類的對象的屬性
self.name = name1
self.age= 0
self.gender = '女'
對象方法:
1.所有的對象方法都有一個默契的參數(shù)self
2.直接聲明在類中的函數(shù)才沧,都是對象方法
3.對象必須使用對象去調(diào)用
def run(self):
print('跑起來')
1.使用類變量:通過類名迈喉。變量通過類名.類變量 的形式在類外去使用類變量
print(Person.count)
2.name,agen温圆,name都是對象的屬性不服挨摸,對象屬性的使用:對象.屬性名
3.對象方法run:對象方法只能通過對象去調(diào)用-->對象.方法名(實參列表)
# run() #NameError:name 'run' is not defined
# Person.run()
4.怎么聲明對象:類名(參數(shù))
通過類創(chuàng)建對象:會自動調(diào)用類的init方法去初始化對象的屬性
類名(參數(shù)),這個參數(shù)有沒有岁歉,就看有幾個init方法
p1 = Person('Luolaoshi') #通過Person類得运,創(chuàng)建了一個對象p1
創(chuàng)建完對象后,就可以通過對象獲取對象屬性:對象.屬性名
print(p1.name)
# 通過對象給屬性賦值
p1.age = 10
print(p1.age)
通過對象去調(diào)用對象方法(也叫給對象發(fā)送消息)
p1.run()
5.一個類可以擁有多個對象
p2 = Person()
p2.name = 'LuoHao'
p2.age = 34
p2.gender = '男'
p2.run()