您好,登錄后才能下訂單哦!
這篇文章主要介紹了python面向對象開發的示例分析,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
Python從設計之初就已經是一門面向對象的語言,正因為如此,在Python中創建一個類和對象是很容易的。本章節我們將詳細介紹Python的面向對象編程。
如果你以前沒有接觸過面向對象的編程語言,那你可能需要先了解一些面向對象語言的一些基本特征,在頭腦里頭形成一個基本的面向對象的概念,這樣有助于你更容易的學習Python的面向對象編程。
接下來我們先來簡單的了解下面向對象的一些基本特征。
類(Class): 用來描述具有相同的屬性和方法的對象的集合。它定義了該集合中每個對象所共有的屬性和方法。對象是類的實例。
類變量:類變量在整個實例化的對象中是公用的。類變量定義在類中且在函數體之外。類變量通常不作為實例變量使用。
數據成員:類變量或者實例變量, 用于處理類及其實例對象的相關的數據。
方法重寫:如果從父類繼承的方法不能滿足子類的需求,可以對其進行改寫,這個過程叫方法的覆蓋(override),也稱為方法的重寫。
局部變量:定義在方法中的變量,只作用于當前實例的類。
實例變量:在類的聲明中,屬性是用變量來表示的。這種變量就稱為實例變量,是在類聲明的內部但是在類的其他成員方法之外聲明的。
繼承:即一個派生類(derived class)繼承基類(base class)的字段和方法。繼承也允許把一個派生類的對象作為一個基類對象對待。例如,有這樣一個設計:一個Dog類型的對象派生自Animal類,這是模擬"是一個(is-a)"關系(例圖,Dog是一個Animal)。
實例化:創建一個類的實例,類的具體對象。
方法:類中定義的函數。
對象:通過類定義的數據結構實例。對象包括兩個數據成員(類變量和實例變量)和方法。
1.熟悉python中的面向對象機制;
2.能正確定義并使用類和對象。
1 設計一個向量類,實現數據的輸入、輸出、向量的加法、減法、點積、夾角等計算
import math class Vectors: def __init__(self): self.x1 = 0 self.x2 = 0 self.y1 = 0 self.y2 = 0 self.x = self.x2 - self.x1 self.y = self.y2 - self.y1 def add(self): self.x1 = int(input("input x1 ")) self.y1 = int(input("input y1 ")) self.x2 = int(input("input x2 ")) self.y2 = int(input("input y2 ")) def out(self): print(self.x, self.y) def plus(self, a, b): self.x = a.x + b.x self.y = a.y + b.y def sub(self, a, b): self.x = a.x - b.x self.y = a.y - b.y def pointmuti(self, a, b): return (a.x * b.x + a.y * b.y) def angle(self, a, b): a1 = (a.x * a.x + a.y * a.y) ** 0.5 b1 = (b.x * b.x + b.y * b.y) ** 0.5 ab = a.x * b.x + a.y * b.y return ab // (a1 * b1) v = Vectors() a = Vectors() b = Vectors() a.add() b.add() a.out() b.out() v.plus(a, b) v.out() v.sub(a, b) print(v.pointmuti(a, b)) print(math.acos(v.angle(a, b)))
2 設計一個三角形類,實現數據的輸入、輸出、周長、面積的計算
import math class Triangle: def __init__(self): a = 0 b = 0 c = 0 def add(self): self.a = int(input("輸入第1條邊的長度:")) self.b = int(input("輸入第2條邊的長度:")) self.c = int(input("輸入第3條邊的長度:")) while (self.a + self.b <= self.c): print("不符合三角邊的規定,重新輸入!") self.a = int(input("輸入第1條邊的長度:")) self.b = int(input("輸入第2條邊的長度:")) self.c = int(input("輸入第3條邊的長度:")) def out(self): print(self.a, self.b, self.c) def length(self): return self.a+self.b+self.c def area(self): p=self.length()/2 print(math.sqrt(p*(p-self.a)*(p-self.b)*(p-self.c))) t = Triangle() t.add() t.out() t.area()
感謝你能夠認真閱讀完這篇文章,希望小編分享的“python面向對象開發的示例分析”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。