[Python-Dev] PEP 3144 review. (original) (raw)
Dj Gilcrease digitalxero at gmail.com
Mon Sep 28 16:42:15 CEST 2009
- Previous message: [Python-Dev] PEP 3144 review.
- Next message: [Python-Dev] PEP 3144 review.
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Mon, Sep 28, 2009 at 8:04 AM, Daniel Stutzbach <daniel at stutzbachenterprises.com> wrote:
On Mon, Sep 28, 2009 at 7:24 AM, Nick Coghlan <ncoghlan at gmail.com> wrote:
I should note that I've softened my position slightly from what I posted yesterday. I could live with the following compromise: >>> x = IPv4Network('192.168.1.1/24') >>> y = IPv4Network('192.168.1.0/24') >>> x == y # Equality is the part I really want to see changed True >>> x.ip IPv4Address('192.168.1.1') >>> y.ip IPv4Address('192.168.1.0') With those semantics, IPv4Network objects with distinct IP addresses (but the same network) could no longer be stored in a dictionary or set. IMO, it is a little counter-intuitive for objects to compare equal yet have different properties. I don't think this is a good compromise.
Thats not true, the patch I submitted http://codereview.appspot.com/124057 still allows the networks to be included in a set or as a dict key
net1 = IPNetwork("10.1.2.3/24") net2 = IPNetwork("10.1.2.0/24") print hash(net1) == hash(net2) False print net1 == net2 True test = {net1: "something", net2: "something else"} print test {IPv4Network('10.1.2.0/24'): 'something else', IPv4Network('10.1.2.3/24'): 'something'} test2 = set([net1, net2]) print test2 set([IPv4Network('10.1.2.0/24'), IPv4Network('10.1.2.3/24')])
- Previous message: [Python-Dev] PEP 3144 review.
- Next message: [Python-Dev] PEP 3144 review.
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]