Eric V. Smith wrote:
> On 10/17/2019 2:36 PM, Steve Jorgensen wrote:
> > Andrew Barnert wrote:
> > [snip]
> > But meanwhile, you still haven’t given any
> > reason why Record would be useful. What
> > exactly is it supposed to mean? When would you want to check it? What would 
> > you do with
> > an
> > object only if you know it’s a Record?
> > This isn’t like checking for a POD type in C++ or a struct type in Swift, 
> > because none
> > of the important things that tells you even make sense in Python.
> > The reason I am interested in having it is to disambiguate collections that 
> > are
> > primarily to be treated as collections of values from those that are 
> > primarily to be
> > accessed as attributes with values. As an example, when converting to JSON, 
> > it would make
> > more sense to represent a regular tuple as a JSON array, but it would make 
> > more sense to
> > represent a namedtuple as a JSON object.
> > This seems specific to your application. I don't think the language can 
> disambiguate this for you. I think the best you can do is use the known 
> way of looking for namedtuples and dataclasses. Although I think that in 
> dataclasses case, is_dataclass is an anti-pattern and I should not have 
> added it.
> For your use case, what's the difference between these two classes:
> @dataclass
> class A:
>      x: int
>      y: float
> class B:
>      def __init__(self, x, y):
>          self.x = x
>          self.y = y
> Do you really want code that treats these differently, just because one 
> used some shortcut to write the __init__ function?
> Eric

My thinking is that checking for type of `Struct` (or `Record` or whatever name 
it has) is most useful in cases when the object is also identifiable as a 
collection and is to disambiguate those that are primarily collections from 
those that are not.

A miscellaneous class like…
      def __init__(self, x, y):
          self.x = x
          self.y = y

…would not be a collection, so there would be no need to disambiguate it.
_______________________________________________
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/LYO4MAOFLCPS442ZDGZWYSDRY2QTI3QM/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to