记录(私有(private) -> _x)数据成员会很有帮助 以同样的方式我可以说:
struct foo {
foo* p_a /* Documentation */
foo ** pp_b /* Documentation */
};
但是对于Python(可以说我们处于不同的编程环境中) 此处的模型)首选的方法是什么?隐含地 当我想要的时候,通过引用定义它们并不会减少它 立即查看此类模型。
这对于直接转换为 UML 也很有用 图表等..
最佳答案
你是对的,Python是一种不同的编程模型。需要理解的是,在 Python 中,当您看到以下内容时:
class Foo(object):
...
这并不是真正的“类声明”。这更像是一种“类(Class)创造”。在解释器到达class..
行的那一刻,而不是之前,一个类对象被创建并准备好。关于这个类对象的一件事是它基本上对其实例一无所知。
类唯一可以访问实例(数据成员通常位于实例上)的时间是当它实际通过方法运行时。这个语法:
def bar(self, x):
...
很有趣。 显式第一个参数暗示正在发生一些不同的事情。没错:当您编写 instance.bar(x)
时,真正发生的是 Foo.bar(instance, x)
。
这意味着 Foo
获取实例的唯一机会是使用方法。
因此,如果您想要一个显式类模型,最好的选择可能是在 __init__
方法中显式列出它。
class Foo(object):
def __init__(self):
self._bar = None # Bar is an important "private" member
self._baz = None # As is baz
self._fizzbuzz = 4 # Of course, you can also provide defaults here
如果我在这里偏离了基础,我希望得到纠正 - 但这就是我目前对 Python 的理解。
关于python - 相当于Python中的结构体成员(主要用于文档和阅读代码),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11162095/