python - 如何生成方法和变量名冲突的导入代码?
问题描述
我正在开发一种软件,该软件通过用户从 GUI 的一组输入(方法和变量)生成通用 Python 源代码。源代码也可以保存在带有标签和 . 现在我需要通过 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++。
我想到的策略——
- 名称修改
- 为每个新导入单独的命名空间或类。
实现导入功能的最佳策略是什么?
解决方案
推荐阅读
- python - 如何检测文件已被 logrotate 旋转?
- python - 根据多个条件过滤数据框结果
- kubernetes - 使用 Azure Kubernetes 服务上托管的 HTTPS API 在 GET 和 POST 期间出现 CORS 问题
- javascript - Webpack 模块联合热重载应用之间
- python - 如何在熊猫中写入加入列表的结果?
- regex - 用于截断文件名的正则表达式
- javascript - 使用 Javascript 禁用 YouTube 自定义上下文菜单/右键菜单
- laravel - Laravel:传递数据以在“控制台命令”中查看
- java - 将数据从 Firebase 实时数据库检索到 Android 中的 ListView 的最佳方法是什么?... 关闭
- php - 如何在laravel测试中检查数组是否有子键