物件導向是相對於面向過程而言的,在早期程式設計中,比如實現1+2+3=6.
通過設計乙個簡單的演算法就能實現。
隨著計算機技術的不斷提高,計算機被用於解決越來越複雜的問題。一切事物皆物件,通過物件導向的方式,將現實世界的事物抽象成物件,現實世界中的關係抽象成類、繼承,幫助人們實現對現實世界的抽象與數字建模。通過物件導向的方法,更利於用人理解的方式對複雜系統進行分析、設計與程式設計。
物件的含義是指具體的某乙個事物,即在現實生活中能夠看得見摸得著的事物。在物件導向程式設計中,物件所指的是計算機系統中的某乙個成分。在物件導向程式設計中,物件包含兩個含義,其中乙個是資料,另外乙個是動作。物件則是資料和動作的結合體。物件不僅能夠進行操作,同時還能夠及時記錄下操作結果。
比如人類的描述:
屬性:姓名,身高,體重,膚色,性別,等等
行為:十月懷胎,吃飯,上廁所等等
符合上述描述的,可以稱之為類,類:就是類別,類別,一類事物的統稱,抽象概念,類並不存在。
而物件則是:類的例項(實實在在的案例)
上述描述說明在物件導向程式設計時候需要先建立類,再對類進行例項化生成物件。
由上,乙個簡單的類就建立好了。下面就對類進行例項化。"""
python中定義乙個類,使用class關鍵字
class 類名稱 類的命名規範:大駝峰法
潛規則"""# 直接這樣定義乙個類
# class user:
class user(object):
# 定義類的屬性(靜態的特徵)
# 覆蓋(重新)__init__方法
def __init__(self):
#類的成員變數
self.name = "波波哥"
self.age = "20"
self.gender = "男"
self.email = "bobo@163.com"
#定義了類的屬性,還可以定義類的行為
def study(self):
print("study python")
print("閉門之中,請勿打擾!")
def eat(self,food):
print("我的名字是{},今年{},愛吃{}".format(self.name,self.age,food))
上面通過類生成物件u1,呼叫類中的屬性和方法,也可以修改類中的屬性。if __name__ == '__main__':
#建立物件
u1 = people()
'''
##呼叫物件的屬性
print(u1.name)
print(u1.age)
print(u1.gender)
print(u1.email)
#呼叫物件的方法
u1.study()
u1.eat("油潑辣子面")
'''u1.name = "柳下惠"
u1.age = 25
u1.gender = "男"
u1.study()
u1.eat("饅頭")
上述**執行的結果是,注意觀察未注釋部分:
上面可以看到,是先對類的屬性進行了固定,下面再對類的屬性進行修改,下面採用生成物件時候傳入引數而建立物件。
**執行結果,將建立物件時候傳入的引數來生成物件。# -*- coding: utf-8 -*-
class cat:
def __init__(self,name,age,color,gender):
self.name = name
self.age = age
self.color = color
self.gender = gender
def sperk(self):
print("喵喵喵,嗷嗷嗷!!我是{}".format(self.name))
if __name__ == '__main__':
c1 = cat("建巨集",20,"黑色","公")
print(c1.name)
c1.sperk()
在建立類的時候要注意什麼才是這個類唯一的屬性?
比如,圓類的屬性應該是什麼呢?我覺得屬性是半徑r比較合適,方法可以寫輸出圓的周長,面積等。
可以寫為如下:
執行結果。# -*- coding: utf-8 -*-
import math
class circle:
def __init__(self,r):
self.r = r
def get_area(self):
return self.r*self.r*math.pi
def get_cal(self):
return 2*self.r*math.pi
if __name__ == '__main__':
radius = float(input("請輸入圓的半徑"))#還可以加上對輸入的值進行判斷是否大於0.
r1 = circle(radius)
print("該圓的周長是".format(r1.get_cal()))
print("該圓的面積是".format(r1.get_area()))#進行格式化輸出,保留三位小數
今天的物件導向分享就到這裡,你可以嘗試著練習下面這些題目:
答案可參考點這裡1、定義乙個圓類(circle),求圓的面積和周長
2、定義乙個三角形類(strange),屬性是三邊的長度,求三角形的面積和周長
3.建立乙個學員類(student),並設計三個字段用於表示學生的成績
(語文、數學、英語);然後定義乙個列表list表示乙個班
的學生(10人),依次輸入每個學生的資訊和成績,輸入
的同時將學員的每科成績劃分等級(100-90:a 89-80:
b 79-70:c 69-60:d 60以下:e)最後輸出所有學員的
資訊4.編乙個關於求多個某門功課總分和平均分的程式。
1.每個學生資訊包括姓名和某門功課成績。
2.假設5個學生。
3.類和物件的處理要合理
5.設計乙個遊戲角色類
字段:角色名、血量、魔法、狀態
方法:釋放技能 被傷害
要求:設計要合理
Python學習之物件導向
物件導向是一種設計思想 1 符合人們的思考習慣 2 把執行者變成指揮者 3 簡化功能,把複雜的事情簡單化 想完成一件事,找具有這樣功能的物件 如果能找到,呼叫這個物件的功能,完成這個事 如果找不到,建立具有這樣功能的物件,再呼叫完成這個事 類是對事物的描述,是抽象的。物件是類的具體體現。類對事物的描...
Python學習之物件導向 一)
6.1.1 什麼是物件導向 面向過程式程式設計 好處 出色的完成所有的需求 壞處 凡是更改或者增加一條需求,可能整個專案都隨之改變 物件導向式程式設計 類 具有相似功能和特性的一類事物 物件 類的具體體現 類的優點 類是相似功能特徵的集合,可以讓 更清晰,更合理化 類是乙個公共的模板,物件是從這個模...
python之物件導向
類 是乙個特殊的物件,class a 定義的類屬於 類物件 類的例項 obj a 屬於 例項物件 例項屬性 init 定義例項屬性 例項方法 self 物件名.方法名 類屬性 針對類物件定義的屬性,訪問類屬性方法 類名.類屬性 物件名.類屬性 類方法 針對類物件定義的方法,內部可直接訪問類屬性和其他...