从图表/UML/可视化表示生成Python代码

2024-04-28 14:46:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一些Python类,我假装用某种可视化工具来管理它们。每个类都有一些可以执行操作的方法(同时也接受参数或返回值或其他类实例)

假设这些类是“Person”、“Hat”和“Handwatch”。现在,让我们假设“Person”具有方法getName()putOn(object)

从代码的角度来看,将“handwatch”或“帽子”附加到“person”(考虑到我刚才提到的类)将非常简单:

person = Person()
if person.getName() == "Fred":
    handwatch = Handwatch()
    person.putOn(handwatch)
else:
    hat = Hat()
    person.putOn(hat)

但是,如果我希望能够“绘制”类实例之间的那种交互,该怎么办

想象一下,一个类似UML的可视化工具可以让我通过从“类”的调色板中拖拽并删除这些类的“实例”来“表示”代码,然后生成与之完全相同的代码

enter image description here

有没有我可以使用的库来实现类似的东西?或者甚至是一些关于这个主题的文献


Tags: 工具实例方法代码参数可视化hatperson
1条回答
网友
1楼 · 发布于 2024-04-28 14:46:43

您不需要从生成代码(图是显示模型一部分的规范化图片),您需要从活动生成代码的工具(可以在图中显示)

作为状态机,活动是一种行为,可以表示操作的定义,例如,与交互相反(可以通过序列图显示)

在代码中,获取新创建的人员的名称似乎是人为的,其名称在创建时未在参数中给出。假设通过输入参数person接收实例,表示代码的活动可以是:

enter image description here

其中绿色的动作是调用操作动作(被调用的操作命名为清除),蓝色的动作是创建对象动作(其名称表示要清除的类)

此外,为了图的清晰性,引脚“name”实际上具有方向返回

从该活动生成Python代码并没有什么不好的,请注意,还有一点可以帮助定义操作,它可以是一种不透明的形式,您可以直接将Python代码放入其中

我认识做这件事的建模师吗?不,抱歉,我甚至想通过{EM>插件EX>在BoUML中做,就像我做状态机生成器(产生C++代码)一样,但是没有人要求。那么,就这么做吧

相关问题 更多 >