Я работаю над программным обеспечением, которое генерирует общий исходный код 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 ++.
Стратегии, о которых я думал -
- Имя искажения
- Отдельное пространство имен или класс для каждого нового импорта.
Что лучшестратегия для реализации функции импорта?