```#
##1、什么是面向?qū)ο缶幊蹋? 以前是用函數(shù)
現(xiàn)在是類+對象
##2、什么是類,什么是對象,他們又有什么關(guān)系?
把函數(shù)放進(jìn)類里
class 類:
def foo(self):
pass
def too(self):
pass
obj是對象,是實例化后就得到一個對象(實例)
obj=類()
obj.foo()
##3、什么時候適合用面向?qū)ο螅?1、根據(jù)一個模板創(chuàng)建東西的時候(cs里人的模板創(chuàng)建警察和劫匪)
2、多個函數(shù)傳入多個相同參數(shù)或者多個函數(shù)里有相同操作時
##4、self就是調(diào)用當(dāng)前方法的對象
#公有屬性應(yīng)用場景:每個對象中保存相同的東西時,可以使用公有屬性
class foo:
#靜態(tài)字段
#公有屬性
countey=“中國” #創(chuàng)建的每一個對象都有共同的值,就能設(shè)置成公有屬性
def __init__(self,city,count):
#普通字段
#普通屬性(在每個對象都保存著自己的那一份)
self.city=city
self.count=count
des bar(self):
pass
obj1=foo("上海",200000)
obj1.bar()
obj2=foo("蘇州",1000000)
obj2.bar()
##5、什么是封裝?
類中封裝了:字段、方法
對象中封裝了:普通字段的值
class f1:
def __init__(self,a):
self.a=a
print("f1")
class f2:
def __init__(self,arge1):
self.b=arge
print("f2")
class f3:
def __init__(self,arge2):
self.c=arge2
print("f3")
o1=f1("alex")
02=f2(o1)
o3=f3(o2)
想輸出“alex”
#o3=f3(o2)
o3.c==>02
#o2=f(o1)
o3.c=f(o1)
o2.b==>o1
o1=f1("alex")
o3.c.b.a
##繼承
class f1:
def __init__(self):
print("f1")
def a1(self):
print("f1a1")
def a2(self):
print("f1a2")
class f2(f1):
def __init__(self):
print("f2")
def a1(self):
self.a2()
print("f2a1")
def a2(self):
print("f2a2")
class f3(f2):
def __init__(self):
print("f3")
def a1(self):
print("f3a1")
def a2(self):
print("f3a2")
obj=f3()
obj.a1()
#輸出 f3a2
f2a1
obj傳進(jìn)去,self.a2=obj.a2=f3.a2
![](https://cache.yisu.com/upload/information/20200310/57/120670.jpg)!
##6、靜態(tài)方法
字段:普通字段(保存在對象中)
靜態(tài)字段(保存在類中)
方法:普通方法(保存在類中,調(diào)用者是對象,至少有一個self參數(shù))
calss fff:
def __init__(self,name)
self.name=name
def a1(self):
print(self.name)
obj=fff()
obj.a1() #值已經(jīng)保存在對象中了,對象有用。
##當(dāng)你的方法和對象里的值沒有任何關(guān)系時這樣調(diào)用浪費空間
calss fff:
def a1(self):
print(“alex”)
obj=fff()
obj.a1()
##此時應(yīng)用靜態(tài)方法
靜態(tài)方法(保存在類中,調(diào)用者是類,可以有任意個參數(shù)):
calss fff:
@staticmethod
def a1(): #self不是必須的了
print(“alex”)
fff.a1() #不需要創(chuàng)建對象直接調(diào)用就行
## 類的繼承中有(繼承,組合2種方式)
class School(object):
""""學(xué)校成員基類"""
number=0
def __init__(self,name,age,sex):
self.name=name
self.age=age
self.sex=sex
self.enroll() #在基類里內(nèi)部調(diào)用(相當(dāng)于子類默認(rèn)調(diào)用)
def enroll(self):
"""注冊"""
print("%s歡迎加入我們學(xué)院!"%self.name)
School.number+=1 #把值賦給公有屬性(變成全局的)直接self.number只是在實例里面創(chuàng)建了一個變量number=0然后加1
def tell(self):
"""打印自己的信息"""
print("------info:%s-------"%self.name)
for k,v in self.__dict__.items():
print("\t",k,v)
print("------end-------" )
#def __del__(self): # 析構(gòu)
print("[%s] 被開除了!"%self.name)
School.number-=1
class newschool(object):
def openschool(self,addr):
print("open in the %s"%addr)
class Teacher(School,newschool): # 多繼承(繼承多個類)
"""講師類"""
def __init__(self,name,age,sex,salary,course):
#School.__init__(self,name,age,sex) #經(jīng)典類
super(Teacher,self).__init__(name,age,sex) # 新式類
self.salary=salary
self.coures=course
def teaching(self):
print("Teacher [%s] is teaching [%s]"%(self.name,self.coures))
class Student(School):
"""學(xué)生類"""
def __init__(self,name,age,sex,course,fee,ttt):
# School.__init__(self,name,sex,age)
super(Student,self).__init__(name,age,sex)
self.Teacher=ttt #類的繼承組合繼承模式
self.course=course
self.fee=fee
self.amount=0
def pay_fee(self,amount):
print("student [%s] has just paid [%s]"%(self.name,self.amount))
self.amount+=amount
#t=Teacher()
t1=Teacher("王肖",29,'F*M',20000,"Python")
s1=Student("王鼎",26,"N/A",'Python',30000,t1)
s2=Student("蘇曉",22,"F","Python",5000,t1)
print(s1.Teacher.salary) #類的繼承組合調(diào)用
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
公司主營業(yè)務(wù):成都網(wǎng)站設(shè)計、做網(wǎng)站、移動網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯(lián)是一支青春激揚、勤奮敬業(yè)、活力青春激揚、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團(tuán)隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)推出曾都免費做網(wǎng)站回饋大家。