如何使用冲突的方法和变量名生成导入的代码?

时间:2018-06-09 06:12:24

标签: python xml import metaprogramming

我正在研究一种软件,该软件通过用户从GUI通过一组输入(方法和变量)生成通用Python源代码。源也可以保存在带有标签的XML中。现在我需要通过XML实现导入功能。导入用户时会选择新的XML,并且XML中的所有函数和变量都需要附加到生成的源中。示例 - XML结构:

<functions>
def detect_obstacle(self):
    laserData = self.laser_scan
    for val in laserData.ranges:
        if val < 100:
            self.is_obstacle = True
            return
    self.is_obstacle = False
</functions>

<variables>
self.is_obstacle = False
</variables>

<interfaces>
LaserScan
</interfaces>

生成代码 -

from codegen import State

class Node():
    def __init__(self):
        self.is_obstacle = False
        self.laserScan = (Updates from a server thorugh a callback)

    def detect_obstacle(self):
        laserData = self.laserScan
        for val in laserData.ranges:
            if val < 100:
                self.is_obstacle = True
                return
        self.is_obstacle = False

class State0(State):
    def __init__(self, id, node):
        State.__init__(self, id)
        self.Node = node

    def runCode(self):
        if self.Node.calculate_obstacle():
            return True

if __name__ == "__main__":
    node = Node()
    state0 = State0(0, node)

导入XML时可能有 -

  • 类似的方法和变量名称
  • 类似的方法名称但不同的论点。

因此,在导入和生成代码之后,生成的代码中会存在歧义。当前的实现是针对Python的,我还会将它扩展到C ++。

我想到的策略 -

  1. 姓名管理
  2. 为每个新导入分隔名称空间或类。
  3. 实施导入功能的最佳策略是什么?

0 个答案:

没有答案