類的定義
python中一切都是物件!資料與運算元據的方法都要封裝到物件中。
1.面向過程:流程化。
開車-1.發動 2.掛擋 3.踩油門 4.出發
2.物件導向:軟體中物件之間的關係
如何造車?
—需要多人協作,多種零件組合
1.輪胎
2.發動機
3.車殼
4.座椅
5.玻璃
先從問題中找名詞,再從問題中找動詞,確立這些名詞哪些可以作為類,再確定類的屬性和方法,確定類之間的關係。
類是物件的模板。例如:做餅乾的模具,類是模具,物件是餅乾。
物件包括三個部分:id、type、value(又包括屬性attribute、method)
用class,內含方法和資料
class datasalary:
def __init__(self,name,age):
#用建構函式來初始化例項物件的例項屬性
self.name=name #例項屬性
self.age=age #例項屬性
def mydata(self):
print(
"的工資是".format(self.name,self.age))
s1=datasalary(
"明明",26)
#通過類名(引數列表)來呼叫建構函式
s1.mydata(
)
作用:負責初始化建立好的物件,給例項屬性賦值。
規則:1.類中方法定義的第乙個值必須是self,是指剛剛建立好的例項物件。
2.通過類名(引數列表)來呼叫建構函式,呼叫後將建立好的物件返回給響應的變數。
s1=datasalary(
"明明",26)
3.用建構函式來初始化例項物件的例項屬性,如
def __init__(self,name,age):
self.name=name #例項屬性
self.age=age #例項屬性
4.相當於c++中的指標,c中的this
1.self.例項屬性名=初始值
2.在類內,即為self.***呼叫
3.在類外,先建立物件 s1=datasalary(),呼叫建構函式,然後再s1.***
def 方法名(self[,形參列表])
函式體呼叫時需要 物件.方法名([實參列表])
a=datasalary()
a.mydata()相當於datasalary.mydata(a)
1.dir(obj)
print(dir(物件))可以獲得物件的所有屬性和方法
2.obj.dict
print(物件.dict)為物件的屬性字典
3.pass 空語句
class man
pass
表示還沒想好
4.isinstance(物件,類名):確定物件是否是指定類
類屬性從屬於類物件,也稱為類變數,可以被所有例項物件共享
類屬性的定義方式:
class student:
count=0
company=
"山師"
def __init__(self,name,age):
self.name=name
self.age=age
student.count=student.count+1
def my(self):
print(self.name,"的年齡是:",self.age)
print(
"公司是",self.company)
#這裡為什麼是self.company而不可以是student.company?
s1=student(
"樂樂",12)
s2=student(
"明明",13)
s1.my(
)print(
"共有",student.count,"個學生"
)#而這裡卻是student.count而不是self.count?
print(type(student))
print(type(s1))
記憶體分析
—del—銷毀物件所需要的操作,物件沒有被引用時,會被自動銷毀。不需要自定義析構方法。
class person:
def_del_(self):
print(
"銷毀物件":
".format(self))
p1=person()
p2=person()
del p2
print("程式結束")
定義該方法的物件為可呼叫物件,即該物件可以像函式一樣被呼叫。
a=30
b=50
c=a+b
其實是d=a.add()
aa()
class salaryaccount:
def __call__(self,salary):
yearsalary=salary
monthsalary=salary/12
daysalary=salary/365
print(
"算工資啦"
)return dict(yearsalary=salary,monthsalary=monthsalary,daysalary=daysalary)
s=salaryaccount(
)print(s(210000))
python 物件導向程式設計
新式類 class mynewobjecttype bases define mynewobjecttype class class suite經典類 沒有指定乙個父類,或者子類化的基本類沒有父類,就建立了乙個經典類 class mynewobjecttype define mynewobjectt...
Python物件導向程式設計
class mynewobjecttype bases define mynewobjecttype class class suite例項化 myfirstobject mynewobjecttype class mydatawithmethod object defprintfoo self p...
python物件導向程式設計
程式設計正規化 程式設計時程式設計師用特定的語法 資料結構 演算法組成的 在計算機上執行任務的過程。實現乙個任務有不同的方式,對這些不同的程式設計方式的特點進行歸納總結得出的程式設計方式類別,即為程式設計正規化。不同的程式設計正規化本質上代表對各種型別的任務採取的不同的解決問題的思路,兩種最重要的程...