面向對象和類的介紹

#1、面向對象
#面向過程與面向對象
#面向過程:過程即解決問題的過程,就是有邏輯順序,基於該思想寫程序。如設計流程圖,是一種機械式的思惟方式。
#優勢:複雜的過程流程化,進而簡單化
#缺點:擴展性差

#面向對象:對象是特徵與技能的結合體,基於該思想編寫程序好比創造一個世界,世界是由一個個對象組成
#優勢:可擴展性強
#缺點:編程複雜高,容易出現過分設計

#2、類
#對象是特徵與技能的結合體,類是一系列對象類似的特徵與技能的結合體。
#在實現中:必定是先有的一個個具體的對象,後總結出的類。如(人,人類)
#在程序中:必定是先定義類,後產生對象。

#類的格式: class 類名:
#類體內的代碼在類的定義階段就會當即執行,
#如:
class sut:
    sc='dagschool'
    def learn(self):
        print('is learing')

    def __init__(self,name,sex,age):   #__init__在調用類時會自動觸發
        self.Name=name
        self.Sex=sex
        self.Age=age

        #self.Name='李'
        #self.Sex='男'
        #self.Age=18

    def choose_cou(self):
        print('choose')

#類的查看屬性
print(sut.__dict__)  #__dict__查看類的名稱空間
print(sut.sc)    #訪問類的名稱空間,"."訪問前面名稱空間的屬性。
print(sut.learn)  #learn類的函數屬性

#類的增長屬性
sut.counttry='china'
print(sut.counttry)

#類的修改屬性
sut.sc='DAGSCHOOL'
print(sut.sc)

#類的刪除屬性
del sut.counttry
print(sut.counttry)

#類函數的調用,必須傳參
sut.learn('ss')

#調用類的過程又稱之爲實例化
#1.獲得的返回值,便是一個對象,該對象是一個空對象。
#2.把空對象,連同調用類時類括號參數,把它拼接成一堆參數,其中空對象自己要當成第一個參數,而後傳給初始化的函數__init__。如:sut.__init__(sut1,'李','男',18)
sut1=sut('李','男',18)  #sut1就是一個對象
print(sut1.__dict__)
print(sut1.Name,sut1.Sex,sut1.Age)

#類中定義的函數是綁定給對象使用的,不一樣的對象就是不一樣的綁定方法,綁定給誰,就應該由誰來調用。誰來調用,就會誰當作第一個參數傳給對象的函數。
class sut:
    sc='dagschool'
    def learn(self,x,y):
        print('%s is learing' %self.Name)
        print(x,y)
    def __init__(self, name, sex, age):  # __init__在調用類時會自動觸發
        self.Name=name
        self.Sex=sex
        self.Age=age

sut1=sut('李','男',18)   #sut1就是一個對象
print(sut1.__dict__)
print(sut1.Name,sut1.Sex,sut1.Age)
sut2=sut('羅','男',8)
sut3=sut('候','男',181)

print(sut.learn)
print(sut1.learn)
print(sut2.learn)
print(sut3.learn)

sut1.learn(1,2)
sut.learn(sut1,1,2) #結果相同

#在類內部定義的函數,都應該默認有一個參數。

例:
class Teac:
    schoo='oldboy'
    count=0
    def __init__(self,name,sex,age,level,salary):
        self.name=name
        self.sex=sex
        self.age=age
        self.level=level
        self.salary=salary
        Teacher.count+=1

    def teach(self):
        print('%s is tacahing' %self.name)

t1=Teac('ii','sdf',19,56,20)
t2=Teac('tr','tf',58,60,1000)
t3=Teac('hg','aop',68,40,100)

print(t1.count)

#類及類型
g=[1,2,3,4] #g=list([1,2,3,4])
g1=list([1,2,3,4])
g2=list([1,2,3,4])

g1.append(5)
#等於
list.append(g1,5)  #g1至關於默認參數self
print(g1)

#綁定方法的理解
g1.append('a')
g2.append('b')
相關文章
相關標籤/搜索