doxygen
等のツールによりソースコードから自動生成出来ます。
ソースコードを解析して得られるものは通常 class
で定義したものに限ります。
以下のように、動的(実行時)に生成されるクラスは含まれません。
- type や namedtuple により生成したクラス。(コメントで補足可能)
- eval や compile で生成されるもの。(出来れば避けるべき)
クラスに所属しない関数に関しては、クラス図はありませんが、
実行時の呼び出し情報等を元にしたコールグラフといったものもあります。
実体はクラスだが、動的に生成される為ドキュメントではクラスと扱われないものの例。
通常は動的に生成した Point, C クラスはVariable に分類される。
コメントにより情報を補足すればクラスとしての扱いは可能。
但し、静的解析では必要な情報を得られない為、
継承元のクラス等をドキュメント内でも再度指定する必要があります。
解析対象としたコードのサンプル
python
1# sample.py
2
3
4from collections import namedtuple
5
6class A:
7 """
8 @class A
9 @brief sample A class
10 """
11 def foo(self):
12 pass
13
14class B(A):
15 """
16 @class B
17 @brief sample B class
18 """
19 def bar(self):
20 pass
21
22##
23# @class Point
24# @brief Point class
25Point = namedtuple("Point", "x,y")
26
27##
28# @class C
29# @inherit B
30C = type("C", (B,), {})
31
32
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。