gpt4 book ai didi

python - 什么是 UML 中的(python-)模块的等价物

转载 作者:太空狗 更新时间:2023-10-30 00:17:17 24 4
gpt4 key购买 nike

在 UML 中,似乎没有元素相当于 python 中的模块,或者至少我还没有弄清楚。

python 中的一个模块,由一个 .py 文件表示,有一个 header ,其中指示了导入。它可以包含许多类,所有类都在模块命名空间中,并且可以直接相互对话并可以访问模块导入的包/模块/类。我如何在图表中绘制它?

更新 1:最后,我偶然发现了一个网页,在那里我找到了一些似乎相关的东西......在本网站(http://www.alan-g.me.uk/l2p/tutclass.htm)的“混合类和模块”一章中,作者说:

"...We can represent that graphically in UML in two ways. The logical grouping of the classes can be represented using a Package or we can represent the physical file as a component...."

如果这是正确的,python 中的模块就像 UML 中的组件。我仍在努力弄清楚它是如何工作的(因为在我看来,UML 中的组件与 Python 中的模块不同),以及我可以如何准确地以及在哪个图表中对其进行建模。

更新 2:我正在使用视觉范例社区版(没有代码生成功能)对其进行测试。现在,我能够看到,在 UML 模型中,组件元素具有类似文件夹的行为,如包。当我将鼠标悬停在组件中包含的类上时,我可以看到我想要的效果,即代表自己命名空间的组件。

现在(如果这是建模的正确方法),我可以在哪里指定这个模块应该导入哪些其他包/模块/类?当我在视觉范例中选择一个包时,它为我提供了一个导入包的选项。但是当我选择一个组件时,没有提供导入功能。非常感谢。

最佳答案

请注意,模块概念只是一种在 Python 中提供代码可重用性和组织的方法。 Python 模块与 UML 包和组件之间的链接不是直接的,而是取决于特定模块的角色。

抱歉,我不是用 Python 编程,所以我可能对典型的模块用法有错误的理解(或者我可能会遗漏一些东西)。然而,据我了解文档,您可以将 Python 模块用于两个基本但有点不同的目的。它可能代表一个组件(即系统的一部分)或一个库(即可重用的类集)。

前者在 UML 中有直接表示,即组件。请注意,组件是其拥有的(包括导入的)元素的命名空间。但是,组件还不能作为命名空间导入,它可以导入包(见下文)。

另一方面(对于库),在 UML 中,您有一个包,您可以轻松地使用它来对应该可导入的模块进行建模。包也是一个命名空间,但它可以被任何其他名称规范(例如其他包和组件)导入。当 Package 被导入到某些 Namespece 时,它​​拥有的元素在导入的 Namespace 中变得可用(有一些限制,请参阅 UML 规范的 7.4.3.3 和 12.2.3.2 以获取更多详细信息)。

导入通常显示在包图中。

所以是的,你的思维方向是好的。

关于python - 什么是 UML 中的(python-)模块的等价物,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27419075/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com