Python 有没有办法在自动生成的gui中使用类成员的docstring?

Python 有没有办法在自动生成的gui中使用类成员的docstring?,python,docstring,Python,Docstring,我正在自动创建一些gui组件来修改参数类的成员。 因为我有很多这样的组件,所以我尝试尽可能地自动化gui组件的创建 我想知道是否有任何方法可以使用docstring,例如在变量声明之后用三重引号字符串定义 class Params: def __init__(self): self.parameter_1 = 'value1' """docstring 1""" self.parameter_2 = 'value2' """

我正在自动创建一些gui组件来修改参数类的成员。 因为我有很多这样的组件,所以我尝试尽可能地自动化gui组件的创建

我想知道是否有任何方法可以使用docstring,例如在变量声明之后用三重引号字符串定义

class Params:
    def __init__(self):
        self.parameter_1 = 'value1'
        """docstring 1"""
        self.parameter_2 = 'value2'
        """docstring 2"""

def get_widget(param):
    for name, value in vars(params):
        # create the gui component
        # but how to access "docstring 1 or 2" ???
简言之,我希望在生成gui组件时访问字符串
docstring 1
,并将其用作显示提示

将文档放到gui中,并保持代码文档的紧凑性和与gui的同步性似乎是最有效的

这可能吗,好的做法?有没有其他方法可以达到同样的目标

谢谢

听起来像。最好将参数定义为普通对象/命名元组或dict/list/tuple

def __init__(self):
    self.parameter_1 = {value: 'value', hint: 'hint about param'}
    self.parameter_2 = ('value', 'hint')
    self.parameter_3 = Parameter(value='value', hint='hint') #assuming you've defined Parameter = namedtuple('Parameter', ['value', 'hint'])  

你可以使用属性。属性包含getter、setter、deleter和docstring

class C:
    def __init__(self):
        self._x = None

    @property
    def x(self):
        """Docstring goes here."""
        return self._x

    @x.setter
    def x(self, value):
        self._x = value

    @x.deleter
    def x(self):
        del self._x
然后您将拥有一个属于C.x的docstring:

>>> C.x.__doc__
Docstring goes here.

Python没有属性docstrings的概念。一些外部工具可以识别这样的docstring,但是Python本身并没有对它们做任何处理,我不认为这是一个xy问题。蟒蛇富含合成糖。我试图找到一个避免使用dict或特定类作为参数的方法,这会使您在想要访问更复杂的类型提示值时更加冗长,谢谢您的建议。那就行了。。。除了紧凑性!(每个参数14行)