首页/文章/ 详情

ANSA二次开发_Python基础-变量范围

3月前浏览341


由于最开始学的是tcl,在学Python的时候在这里当时还有一点迷糊,tcl的全局变量还需要通过global声明,才能在函数内部访问,而Python可以直接访问函数外部的变量,变量的作用范围和tcl有些许差异,所以单独记录下。

Python的变量作用范围可以分为以下几种:
1. 全局作用域:在模块级别定义的变量,整个模块内都可以访问,就是tcl需要通过global声明的变量。
2. 局部作用域:在函数或方法内定义的变量,只能在该函数或方法内访问。
3. 嵌套作用域:在一个封闭的函数内定义的变量,可以被嵌套在其中的函数访问。
4. 导入模块内的变量作用范围:通过.方法访问导入模块的变量
5. 方法内的作用范围:外部可以访问类的变量,方法内的变量不可见。

1、全局作用域





x = "global x" # 全局变量def function(): print(x) # 访问全局变量xfunction()print(x) # 在模块内任何地方都可以访问x

2、局部作用域





def function(): y = "local y" # 局部变量 print(y)function()# print(y) # 这会引发错误,因为y在函数外部不可见

3、嵌套作用域






def outer():    z = "outer z"  # 外层函数的局部变量    def inner():        print(z)  # 可以访问外层函数的局部变量z    inner()outer()

4、导入模块内的变量作用范围







# 假设有一个名为module.py的文件,其中定义了变量a# module.pya = "module var"
# 现在在另一个文件中导入moduleimport moduleprint(module.a)  # 可以访问module中的变量a
5、方法内的作用范围










class MyClass:    s = "method ssss"  # 方法内的局部变量    def method(self):        m = "method var"  # 方法内的局部变量        print(m)
obj = MyClass()obj.method()print(obj.s)print(m)  # 这会引发错误,因为m在方法外部不可见

来源:TodayCAEer
二次开发ANSApython
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2024-08-14
最近编辑:3月前
TodayCAEer
本科 签名征集中
获赞 18粉丝 29文章 249课程 0
点赞
收藏
作者推荐

ANSA二次开发:解决ANSA延伸功能的不完善

大家可能都有过这样的经历,在从使用HyperMesh以及ANSA的过程中,会发现一些常用的功能在ANSA中得到了不同的实现。其中,一个就是延伸网格操作,它在HyperMesh中命令是"drag",允许用户选择节点并指定延伸方向和距离,从而快速创建新的网格。在ANSA中,延伸功能也有对应的操作,名为"Extrude",但从我个人使用情况来看,似乎不太符合我的期望。在ANSA中的延伸功能存在一个限制:用户必须选择的延伸方向的,是基于边(edge)或曲线(curve),并且所选择的路径还得在选择延伸边界的前方。这种约束就使用户操作起来相对繁琐,并且限制了延伸的灵活性。例如不能通过三点法向,两点矢量,正交矢量延伸,为了解决这个问题,我编写了一个二次开发程序。通过选择edge并指定通过一点,两点,三点的方式指定延伸方向和距离,就成功实现了类似于HyperMesh中"drag"功能的延伸操作。当然,我要强调的是,这个程序仅代表我个人对于ANSA软件的理解,并不意味着ANSA本身的不足。如果你对这个程序感兴趣,只需回复关键字"ANSA_extend",自动回复文件链接。###########################此外,当ANSA系列完结后,后台有不少的小伙伴在咨询ANSA二次开发相关的问题,那么就创建一个交流群吧。欢迎对ANSA感兴趣的小伙伴。与我们一起探讨技术难题,期待与你们的交流,共同进步。此外希望您对ANSA具有一定的开发能力或使用经验。以下问题任选四个,以尽量简短的话,后台回复您的思路即可。或其他能代表ANSA开发能力、ANSA使用能力的说明。ANSA交流群二次开发基础问题:1、如何通过一个单元获取单元所在面的单元对象。2、如何通过一个点抓取指定圆球半径内的节点对象。3、如何通过一个点与矢量,直径,抓取圆柱范围内的节点对象4、如何获取距离最近坐标点的节点对象。5、如何自动修复模型check>Mesh>crake错误。6、如何创建rbe2单元,并且主点在质心,而不是中心。7、如何对一组相连但无序的节点按照拓扑关系进行排序。8、当一个PART存在多个零件,如何按照PIDRigion的拓扑关系进行分组。来源:TodayCAEer

未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈