On 12/18/2017 2:55 PM, Ivan Levkivskyi wrote:
On 18 December 2017 at 20:38, Nick Coghlan <ncogh...@gmail.com <mailto:ncogh...@gmail.com>> wrote:


    On 19 Dec. 2017 7:00 am, "Chris Barker" <chris.bar...@noaa.gov
    <mailto:chris.bar...@noaa.gov>> wrote:


        Are there other options??

        plain old:

        @dataclass
        class C:
             a = 1
             b = 1.0

        would work, though then there would be no way to express fields
        without defaults:


    The PEP already supports using "a = field(); b = field()" (etc) to
    declare untyped fields without a default value.


The PEP is not 100% clear not this, but it is currently not the case and this may be intentional (one obvious way to do it),
I just tried and this does not work:

@dataclass
class C:
     x = field()

generates `__init__` etc. with no arguments. I think however that it is better to generate an error than silently ignore it.
(Or if this a bug in the implementation, it should be just fixed.)

Hmm, not sure why that doesn't generate an error. I think it's a bug that should be fixed. Or, we could make the same change we're making in make_dataclass(), where we'll use "typing.Any" (as a string) if the type is omitted. See https://bugs.python.org/issue32278.

_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to