On Thu, Nov 18, 2021 at 7:44 PM Stephen J. Turnbull <stephenjturnb...@gmail.com> wrote: > > Steven D'Aprano writes: > > On Wed, Nov 17, 2021 at 02:26:16PM -0000, tmkehrenb...@gmail.com wrote: > > > > > @dataclass > > > class A: > > > """Docstring for class A.""" > > > x: int > > > """Docstring for x""" > > > y: bool = True > > > "Docstring for y" > > > However a real problem is that bare strings like that are already legal, > > although only as a no-op. People sometimes use them as multiline > > comments. > > I agree it's a real problem. But I don't think it's a show-stopper. > That is, the proposal as written also seems to be a near no-op from > the point of view of backwards compatibility (I guess if you list the > attributes of the class you would discover the new dunder). > > > So we would have no real way of distinguishing between these cases: > > > > class A: > > """Docstring for class A.""" > > x: int > > """Docstring for x""" > > y: bool = True > > """Just a comment.""" > > True, but why would one want to, except to save the space? And for > that, there's -OO. >
Possible wrinkle: What if a string literal immediately follows something that isn't an attribute declaration? class A: "Class docstring" x: int "x docstring" y: bool; True "y docstring?" print("Hello, world?") "print docstring??" def spam(self): ... "spam docstring???" I presume it would have to be permitted and ignored, as per current behaviour (otherwise it'd create bizarre errors in currently-legal code). But that may make for some hard-to-track-down bugs when there's an error in a declaration, or when something technically breaks the declaration from the docstring (like the presumably-unintended semicolon in the y line). I'm personally -0 on this - I don't declare class level type annotations enough to want to use this, but if it existed, I'd probably find a way to use it for a DSL or something. It's of minimal value, but it should also be of minimal disruption. ChrisA _______________________________________________ Python-ideas mailing list -- python-ideas@python.org To unsubscribe send an email to python-ideas-le...@python.org https://mail.python.org/mailman3/lists/python-ideas.python.org/ Message archived at https://mail.python.org/archives/list/python-ideas@python.org/message/D6QWPRMYETJCGQOWRUH2KBW2ZHMPCDE2/ Code of Conduct: http://python.org/psf/codeofconduct/