[Python-Dev] PEP 557: Data Classes (original) (raw)
Eric V. Smith eric at trueblade.com
Mon Sep 11 21:36:21 EDT 2017
- Previous message (by thread): [Python-Dev] PEP 557: Data Classes
- Next message (by thread): [Python-Dev] PEP 557: Data Classes
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On 9/11/2017 6:28 PM, Guido van Rossum wrote:
Oddly I don't like the enum (flag names get too long that way), but I do agree with everything else Barry said (it should be a trivalue flag and please don't name it cmp).
So if we don't do enums, I think the choices are ints, strs, or maybe True/False/None. Do you have a preference here?
If int or str, I assume we'd want module-level constants.
I like the name compare=, and 3 values makes sense: None, Equality, Ordered.
Eric.
On Mon, Sep 11, 2017 at 3:16 PM, Ethan Furman <ethan at stoneleaf.us_ _<mailto:ethan at stoneleaf.us>> wrote: On 09/11/2017 03:00 PM, Barry Warsaw wrote: On Sep 10, 2017, at 20:08, Nathaniel Smith wrote:
I've sometimes wished that attrs let me control whether it generated equality methods (eq/ne/hash) separately from ordering methods (lt/gt/...). Maybe the cmp= argument should take an enum with options none/equality-only/full? I have had use cases where I needed equality comparisons but not ordered comparisons, so I’m in favor of the option to split them. (atm, I can’t bring up a specific case, but it’s not uncommon.) Given that you only want to support the three states that Nathaniel describes, I think an enum makes the most sense, and it certainly would read well. I.e. there’s no sense in supporting the ordered comparisons and not equality, so that’s not a state that needs to be represented. I’d make one other suggestion here: please let’s not call the keyword
cmp
. That’s reminiscent of Python 2’scmp
built-in, which of course doesn’t exist in Python 3. Usingcmp
is just an unnecessarily obfuscating abbreviation. I’d suggest justcompare
with an enum like so: enum Compare(enum.Enum): none = 1 unordered = 2 ordered = 3 I like the enum idea (suprise! ;) but I would suggest "equal" or "equivalent" instead of "unordered"; better to say what they are rather than what they are not. --Ethan
Python-Dev mailing list Python-Dev at python.org <mailto:Python-Dev at python.org> https://mail.python.org/mailman/listinfo/python-dev <https://mail.python.org/mailman/listinfo/python-dev> Unsubscribe: https://mail.python.org/mailman/options/python-dev/guido%40python.org <https://mail.python.org/mailman/options/python-dev/guido%40python.org>
-- --Guido van Rossum (python.org/~guido <http://python.org/%7Eguido>)
Python-Dev mailing list Python-Dev at python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/eric%2Ba-python-dev%40trueblade.com
- Previous message (by thread): [Python-Dev] PEP 557: Data Classes
- Next message (by thread): [Python-Dev] PEP 557: Data Classes
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]