python - 相当于Python中的结构体成员(主要用于文档和阅读代码)

标签 python documentation member

记录(私有(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/

相关文章:

python - 使用 Python 迭代字符串中的每个字符

performance - 减少PowerShell脚本的运行时间

c++ - 成员函数作为函数模板的参数

c# - 获取一个类的所有成员的集合

python - 带参数的函数列表

Python计算文本文件中的逗号

python - 在 Python 中表示集合中多个等效键的数据结构?

javascript - 向 JavaScript 函数添加文档的标准方法是什么?

unit-testing - 在进行单元测试时,100% 的代码覆盖率真的是一件好事吗?

Java CUP资源,还用着吗?