首頁 > 軟體

python 物件導向開發及基本特徵

2022-03-31 13:02:55

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 物件導向開發的文章就介紹到這了,更多相關python 物件導向開發內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com