【问题标题】:reset all variable after for loop在 for 循环后重置所有变量
【发布时间】:2021-02-02 17:36:03
【问题描述】:

我会有一个如下所示的 for 循环。运行一次后,我想在 i 中的每个增量之后重置/删除所有外部变量定义(i)以及循环内的变量(k,p)。我该怎么做? 我正在另一个程序 abaqus 的 python 解释器(版本 2.7.3)中执行此代码(我不知道这是否会影响代码)。

for i in range(10,11):

    mdb.Model(name='model-{}'.format(i), modelType=STANDARD_EXPLICIT)
    session.viewports['Viewport: 1'].setValues(displayedObject=None)
    session.viewports['Viewport: 1'].partDisplay.setValues(mesh=OFF)
    session.viewports['Viewport: 1'].partDisplay.meshOptions.setValues(
        meshTechnique=OFF)
    session.viewports['Viewport: 1'].partDisplay.geometryOptions.setValues(
        referenceRepresentation=ON)
    step = mdb.openStep('C:/temp/Circular_knit - 2, 3, {}.STEP'.format(i), 
    scaleFromFile=OFF)
    mdb.models['model-{}'.format(i)].PartFromGeometryFile(name='Circular_knit - 
    2, 3, {}'.format(i),
        geometryFile=step, combine=False, retainBoundary=True,
        mergeSolidRegions=True, dimensionality=THREE_D, type=DEFORMABLE_BODY)
    p = mdb.models['model-{}'.format(i)].parts['Circular_knit - 2, 3, 
    {}'.format(i)]
    session.viewports['Viewport: 1'].setValues(displayedObject=p)
    session.viewports['Viewport: 1'].view.fitView()
    p = mdb.models['model-{}'.format(i)].parts['Circular_knit - 2, 3, 
    {}'.format(i)]
    all_edges = []
    for j in p.edges:
        all_edges.append(j)
    k=tuple(all_edges)
    p.WireFromEdge(edgeList=(k))

【问题讨论】:

  • “非明确定义的变量”是什么意思?使用p = k = 是显式定义一个变量。另外,“重置/删除”是什么意思? del pdel kdel i 应该是您要查找的内容(尽管我不明白您为什么需要删除这些变量)。
  • Python 2.73 已经过时了一年多。尝试升级到最新版本的 Python。
  • 请更新代码的缩进。 Python 对缩进非常敏感,python 程序员也是如此。
  • 将代码放入函数中。
  • @quamrana :我很抱歉,并且仍在学习这个论坛的规则。使用四个空格编辑并添加了缩进。

标签: python for-loop variables


【解决方案1】:

使用类对象,你的变量只会是“本地”的,见:class objects 或者你使用内置函数:

del ...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-14
    • 2018-10-11
    • 2020-04-05
    • 1970-01-01
    相关资源
    最近更新 更多