鳥瞰 ABAQUS/CAE 的 PYTHON 二次開發,“面向對象”該如何理解 ?
鳥瞰 ABAQUS/CAE 的 PYTHON 二次開發,“面向對象”該如何理解 ?
如果你嘗試去了解或學習ABAQUS/CAE 的PYTHON 二次開發,你就會被告知:“ABAQUS/CAE 的 PYTHON 二次開發是面向對象編程的。”
這篇文字就帶各位從“面向對象編程”這個角度來初步認識一下ABAQUS/CAE 的 PYTHON 二次開發。
換個表達去理解
首先,“對象”可以換成“實例”這個詞語來表達,可以樸素的理解為“實際的例子”、“實實在在的例子”。
過去面向過程編程,變量都是一個一個松散的進行定義,比如為了描述下面這個邊長20cm的立方體模型,會像這樣定義變量和函數來描述它:
# L長度 W寬度 H高度 L = 20.0 W = 20.0 H = 20.0 # 這個函數用來計算體積 def volume (L, W, H): V = L * W * H return V
而面向對象編程會這樣來描述它:
# 邊長變量 和 計算體積的函數 被包含在 model 這個類型里面 class model (object): def __init__(self, L, W, H): self.L = L self.W = W self.H = H def volume (self): return self.L * self.W * self.H
兩種方式的區別是非常明顯的。如果有兩個尺寸不同的立方體模型,前一種方法為了區分不同立方體模型的參數,也許會給參數定義下標,L1, W1, H1, L2, W2, H2。而后面的方法只需要給每個立方體模型命名,比如立方體分別命名為 model1、model2,那他們的邊長、體積就可以這樣來表達了:
model1.L, model1.W, model1.H, model1.volume()
model2.L, model2.W, model2.H, model2.volume()
含義非常明確,參數不會混亂,各個參數不需要再重新定義了。
下面是 python源代碼實際運行的截圖:
所以,“對象”作為“實實在在的例子”,它的“實實在在”就在于把反映共同特征的信息(變量、函數)聚攏在一起,放到“class”(類型)里面。這種方式有個專業的術語來表達:封裝。放到“class”里面的變量稱為“成員變量”或“屬性”,放到“class”里面的函數稱為“成員函數”或“方法”。
ABAQUS/CAE 里面的“對象”
其實 ABAQUS/CAE 里面的“對象”十分顯而易見。
界面左側的樹形菜單(下圖)就是一個具象的“對象”,它們是自下而上一級一級被包含的,其實就是類似上面的例子一樣被“封裝”了起來。每次在界面上建模就是往這個“對象里面“填進”各種數值、信息,而python 二次開發就是直接用代碼的方式來完成往“對象”里面“填進”各種數值、信息的過程。
工程師必備
- 項目客服
- 培訓客服
- 平臺客服
TOP




















