目錄三:在python中如何定義類?
一:什麼是面向過程?
面向過程的核心是過程,過程就是把一件事分成幾個步驟來完成,然後把每乙個步驟給完成,這件事就完成了!
優點:複雜問題簡單化
缺點:後期擴充套件性差,牽一髮而動全身
二:什麼是物件導向?
物件就是把資料和功能封裝在一起,基於這種思想寫的程式,就是整合程式
優點:擴充套件性比較好
缺點:簡單問題複雜化
1:如何基於物件導向的思想編寫程式
# 學生的資料
studnet_name = 'alen'
student_age = 19
student_gender = 'mali'
# 學生的功能
def choose_course(name,age,gender):
print(f'--正在選課')
choose_course(student_name,student_age,student_gender)
2:用物件導向的思想來進行修改student_obj =
print(student_obj['name'])
student_obj['choose'](stu_obj)
3:如何基於物件導向來寫程式?學生的資料
student_name = 'alen'
student_age = 18
student_gender = 'male'
# 學生的功能
def choose_course(name,age,gender):
print('正在選課')
choose_course(student_name,student_age,student_gender)
4:基於物件式的思想進行改寫def choose_course(obj):
print('正在選課')
student_obj =
print(student_obj['name'])
print(student_obj['choose'](**student_obj))
三:在python中如何定義類?# 類體**會在類定義階段立即執行,然後將產生的名字都放到類的命名空間中
class student:
school = '日本校區'
def choose_course(self):
print("正在選課")
print('正在選課!')
s1 = student()
s2 = student()
s3 = student()
s1.age = 10
s1.name = '李四'
s1.gender = 'male'
s2.name = '小過'
s2.age = 88
s2.gender = 'female'
s3.name = '山雞'
s3.age = 200
s3.gender = 'male'
print(s1.__dict__)
print(s2.__dict__)
print(s3.__dict__)
1:類的初始化方法class student:
school = '東京校區'
def choose_school(self):
print("正在選課")
s1 = student()
s2 = student()
s1.name = 'alen'
s1.age = 18
s1.gender = 'male'
s2.name = 'alen_'
s2.age = 12
s2.gender = 'male'
class student:
school = '海南校區'
def choose_school(self):
print("正在選課")
s1 = student()
s2 = student()
def init(obj,x,y,z):
obj.name = x
obj.age = y
obj.gender = z
init(s1,'alen',187,'male')
init(s2,'alen1',11,'female')
class student:
school = '山東校區'
def __init__(self,name,age,gender):
self.name=name
self.age = age
self.gender = gender
def choose_course(self):
print(f'正在選課』)
s1 = student('alex',18,'男')
s2 = student('jack',88,'female')
2:屬性查詢
先從物件的記憶體裡查詢,沒有去類的記憶體中查詢
class student:
school = '南方校區'
def __init__(x,y,z):
self.name = x
self.age = y
self.gender = z
def choose(self):
print("正在選課")
s1 = student('jack',88,'female')
s2 = student('alen',18,'male')
s3 = student('arry',88,'male')
類中的資料是直接共享給所以物件使用
print(id(s1.school))
print(id(s2.school))
print(id(s3.school))
student.school = '北方校區'
print(s1.school)
print(s2.school)
print(s3.school)
print(student.choose)
print(s1.choose)
print(s2.choose)
print(s3.choose)
`
類中定義的函式時繫結給所以物件使用的,繫結誰,就應該有哪個物件來呼叫
物件.繫結方法()會把物件當作第乙個引數傳入
類.函式就是乙個函式的玩法,沒有自動傳參的效果
print(student.choose('alex'))
s1.choose()
s2.choose()
s3.choose()
c 物件導向程式設計 物件導向
什麼是物件導向 是對現實世界理解和抽象的方法。物件導向程式設計的特點 易維護,易擴充套件,靈活性好,重用 類 對事物的抽象定義,即事物具有的共同特徵和行為。物件 即對類進行例項 類是抽象的,物件是具體的 類的定義 語法 訪問修飾符 class 類名類的成員 包括字段,屬性,方法,常量,事件和索引器等...
物件導向程式設計
物件導向程式設計 抽象 封裝 繼承 多型 單一職責原則 就乙個類而言,應該僅有乙個引起它變化的原因。開放封閉原則 軟體實體應該可以擴充套件,但是不可修改。所有的設計模式都是對不同的可變性進行封裝,從而使系統在不同的角度上達到開發封閉原則。依賴倒轉原則 a 高層不應該依賴低層,兩個都應該依賴抽象。b ...
物件導向程式設計
class team def init self self.name tampa bay buccaneers bucs team print bucs.name tampa bay buccaneers 當呼叫team 函式時,會自動呼叫init函式,self是自動傳入到init中的引數,它指向當...