深入理解ABAQUS/CAE的PYTHON二次开发:面向对象概念

ss.png

如果你尝试去了解或学习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
        ss.png

两种方式的区别是非常明显的。如果有两个尺寸不同的立方体模型,前一种方法为了区分不同立方体模型的参数,也许会给参数定义下标,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源代码实际运行的截图:

ss.png

所以,“对象”作为“实实在在的例子”,它的“实实在在”就在于把反映共同特征的信息(变量、函数)聚拢在一起,放到“class”(类型)里面。这种方式有个专业的术语来表达:封装。放到“class”里面的变量称为“成员变量”或“属性”,放到“class”里面的函数称为“成员函数”或“方法”。

ABAQUS/CAE 里面的“对象”

其实 ABAQUS/CAE 里面的“对象”十分显而易见。

界面左侧的树形菜单(下图)就是一个具象的“对象”,它们是自下而上一级一级被包含的,其实就是类似上面的例子一样被“封装”了起来。每次在界面上建模就是往这个“对象里面“填进”各种数值、信息,而python 二次开发就是直接用代码的方式来完成往“对象”里面“填进”各种数值、信息的过程。

ss.png


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空