python?面向?qū)ο箝_發(fā)及基本特征
Python 面向?qū)ο?/h2>
Python從設(shè)計(jì)之初就已經(jīng)是一門面向?qū)ο蟮恼Z言,正因?yàn)槿绱?,在Python中創(chuàng)建一個(gè)類和對(duì)象是很容易的。本章節(jié)我們將詳細(xì)介紹Python的面向?qū)ο缶幊獭?/p>
如果你以前沒有接觸過面向?qū)ο蟮木幊陶Z言,那你可能需要先了解一些面向?qū)ο笳Z言的一些基本特征,在頭腦里頭形成一個(gè)基本的面向?qū)ο蟮母拍?,這樣有助于你更容易的學(xué)習(xí)Python的面向?qū)ο缶幊獭?/p>
接下來我們先來簡單的了解下面向?qū)ο蟮囊恍┗咎卣鳌?/p>
面向?qū)ο蠹夹g(shù)簡介
- 類(Class): 用來描述具有相同的屬性和方法的對(duì)象的集合。它定義了該集合中每個(gè)對(duì)象所共有的屬性和方法。對(duì)象是類的實(shí)例。
- 類變量:類變量在整個(gè)實(shí)例化的對(duì)象中是公用的。類變量定義在類中且在函數(shù)體之外。類變量通常不作為實(shí)例變量使用。
- 數(shù)據(jù)成員:類變量或者實(shí)例變量, 用于處理類及其實(shí)例對(duì)象的相關(guān)的數(shù)據(jù)。
- 方法重寫:如果從父類繼承的方法不能滿足子類的需求,可以對(duì)其進(jìn)行改寫,這個(gè)過程叫方法的覆蓋(override),也稱為方法的重寫。
- 局部變量:定義在方法中的變量,只作用于當(dāng)前實(shí)例的類。
- 實(shí)例變量:在類的聲明中,屬性是用變量來表示的。這種變量就稱為實(shí)例變量,是在類聲明的內(nèi)部但是在類的其他成員方法之外聲明的。
- 繼承:即一個(gè)派生類(derived class)繼承基類(base class)的字段和方法。繼承也允許把一個(gè)派生類的對(duì)象作為一個(gè)基類對(duì)象對(duì)待。例如,有這樣一個(gè)設(shè)計(jì):一個(gè)Dog類型的對(duì)象派生自Animal類,這是模擬"是一個(gè)(is-a)"關(guān)系(例圖,Dog是一個(gè)Animal)。
- 實(shí)例化:創(chuàng)建一個(gè)類的實(shí)例,類的具體對(duì)象。
- 方法:類中定義的函數(shù)。
- 對(duì)象:通過類定義的數(shù)據(jù)結(jié)構(gòu)實(shí)例。對(duì)象包括兩個(gè)數(shù)據(jù)成員(類變量和實(shí)例變量)和方法。
一、實(shí)驗(yàn)要求
1.熟悉python中的面向?qū)ο髾C(jī)制;
2.能正確定義并使用類和對(duì)象。
二、實(shí)驗(yàn)內(nèi)容
1 設(shè)計(jì)一個(gè)向量類,實(shí)現(xiàn)數(shù)據(jù)的輸入、輸出、向量的加法、減法、點(diǎn)積、夾角等計(jì)算
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 設(shè)計(jì)一個(gè)三角形類,實(shí)現(xiàn)數(shù)據(jù)的輸入、輸出、周長、面積的計(jì)算
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("不符合三角邊的規(guī)定,重新輸入!") 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()
到此這篇關(guān)于python 面向?qū)ο箝_發(fā)的文章就介紹到這了,更多相關(guān)python 面向?qū)ο箝_發(fā)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python Matplotlib底圖中鼠標(biāo)滑過顯示隱藏內(nèi)容的實(shí)例代碼
這篇文章主要介紹了python Matplotlib底圖中鼠標(biāo)滑過顯示隱藏內(nèi)容,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-07-07Python中使用HTMLParser解析html實(shí)例
這篇文章主要介紹了Python中使用HTMLParser解析html實(shí)例,本文直接給出使用示例,并總結(jié)出HTMLParser含有的方法分為兩類,一類是需要顯式調(diào)用的,而另一類不需顯示調(diào)用,需要的朋友可以參考下2015-02-02python讀取eml文件并用正則表達(dá)式匹配郵箱的代碼
今天接到一個(gè)需求有一個(gè)同事離職了,但是留下了非常多的郵件,我需要將他的郵件進(jìn)行分類,只要郵件中以@xxx.com結(jié)尾的存放在文件夾中,否則放在另一個(gè)文件夾中,這篇文章主要介紹了python讀取eml文件并用正則匹配郵箱,需要的朋友可以參考下2022-11-11python用win32gui遍歷窗口并設(shè)置窗口位置的方法
今天小編就為大家分享一篇python用win32gui遍歷窗口并設(shè)置窗口位置的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-07-07python解釋器pycharm安裝及環(huán)境變量配置教程圖文詳解
這篇文章主要介紹了python解釋器pycharm安裝及環(huán)境變量配置教程圖文詳解,本文圖文并茂給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-02-02Python學(xué)習(xí)之列表常用方法總結(jié)
這篇文章主要為大家介紹了Python中列表的幾個(gè)常用方法總結(jié),文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Python列表有一定幫助,需要的可以參考一下2022-03-03python代碼 FTP備份交換機(jī)配置腳本實(shí)例解析
這篇文章主要介紹了python代碼 FTP備份交換機(jī)配置腳本實(shí)例解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-08-08