先看需求:如何描述一條狗?一種是這條狗的獨有特徵(如名字,性別,類別),還有所有狗都有的行為(吃喝拉撒睡),如何實現呢,獨有特徵肯定用dict,行為當然是用函式來完成。
dog1=但是會有乙個問題,人person1,他也可以呼叫狗的def eat(),def jiao()。如何避免這個問題呢?難道每次呼叫函式都用 if 判斷?person1=
defeat(dog):
print('
%s在吃屎
'%dog['
name'])
defjiao(dog):
print('
%s 在叫
'%dog['
name'])
jiao(dog1)
其實根據函式的作用域,可以把函式放到乙個大的函式裡邊,做成子函式,那麼外部的人就呼叫不到了
person1 =defdog():
defeat(dog):
print('
%s在吃屎
' % dog['
name'])
defjiao(dog):
print('
%s 在叫
現在還有個問題,就是狗被寫死了,名字,性別,類別等都被寫死了!如何不寫死,當然是根據使用者的引數傳入來寫。
person1 =一般獨有的特徵會放到乙個init初始化函式裡面defdog(name, gender, type):
def eat(dog): #
需要字典dog
print('
%s在吃屎
' % dog['
name'])
def jiao(dog): #
需要字典dog
print('
%s 在叫
' % dog['
name'])
dog1 =
return
dog1
d1 = dog('
旺財', '
母', '藏獒'
)d1[
'eat
'](d1) #
注意,需要的引數是dict,傳的引數是自己,返回的就是dog1的dict。
**就被優化成這樣
person1 =從上面可以看出來:defdog(name, gender, type):
def eat(dog): #
需要字典dog
print('
%s在吃屎
' % dog['
name'])
def jiao(dog): #
需要字典dog
print('
%s 在叫
' % dog['
name'])
definit(name,gender,type):
dog1 =
return
dog1
return
init(name,gender,type)
d1 = dog('
旺財', '
母', '藏獒'
)d1[
'eat
'](d1) #
注意,需要的引數是dict,傳的引數是自己,返回的就是dog1的dict。
1.類:是具有相同屬性的一類實物的集合。
2.物件:物件是類當中具體的某個物體。
再來乙個需求:如何描述乙個學校?特徵(名字,位址,私立還是公立),動作(招生,考試),根據上面的例子**應該可以一步到位了。
def上面用函式def完成了乙個類,說明school(name,addrs,type):
definit(name,addrs,type):
school1=
return
school1
defzhaosheng(school):
print('
%s學校正在招生
'%school['
name'])
defkaoshi(school):
print('
%s學校正在考試
'%school['
name'])
return
init(name,addrs,type)
school1=school('
北大','
北京','
私立')['
kaoshi
'](school('北大','北京','私立')) #傳的是自己self
物件導向設計:是將一類具體實物的資料和動作整合到一起。不一定非得用class,用函式def也可以實現
物件導向程式設計:用class+例項/物件的方法去實現物件導向設計。如c++有很多class
物件導向設計模式一 概念
每乙個模式描述了乙個在我們周圍不斷重 生的問題,以及該問題的解決方案的核心。這樣,你就能一次又一次 地使用該方案而不必做重複勞動 christopher alexander 做法 應對變化,提高復用。目的 乙個系統總是趨於穩定與變化之間,根據變化點選擇合適的設計模式,增強系統的靈活性。依據 物件導向...
Spring基礎(一) 概念
t1 spring中bean的生命週期 total 1.先要通過反射呼叫bean的構造器例項化bean 2.再通過反射注入bean的屬性 3.若實現裡beannameaware介面,根據bean的id,setbeanname 4.若實現了beanfactoryaware介面,呼叫setbeanfac...
物件導向基礎 概念
類 類時模子,確定物件將會擁有的特徵 屬性 和行為 方法 物件 看的見,摸得到,具體的,特指的 區別 類是抽象的概念,僅僅是模板,物件是乙個你能夠看得到 摸得到的具體實體 舉例 桌子 類 這個桌子 物件 值得注意的是字段與屬性之間的關係 字段 在類中定義的變數,用來儲存描述類的特徵的值 public...