> The fundamental divide here is between two behaviors. > > ipaddr: > > >>> x = IPv4Network('192.168.1.1/24') > >>> y = IPv4Network('192.168.1.0/24') > >>> x == y > False > >>> x.ip > IPv4Address('192.168.1.1') > > desired: > > >>> x = IPv4Network('192.168.1.1/24') > >>> y = IPv4Network('192.168.1.0/24') > >>> x == y > True > >>> x.ip > Traceback (most recent call last): > File "<stdin>", line 1, in <module> > AttributeError: 'IPv4Network' object has no attribute 'ip'
I can understand the debate around the comparison. I cannot understand the complaint that networks where the base address is not null-terminated should be banned, or useless (which was the original concern that I responded to). > Everything else is pretty much bikeshedding and can be dealt with. This > is fundamental and Peter has indicated he will not change it. I can see why either behavior is desirable (i.e. comparison should either use the specified address, or the network address); following the Python Zen, we should refuse the temptation to guess. Unfortunately, that would mean that we should provide two comparison operations, and have neither available as == (unless one is more clearly right than the other, which I'm skeptical about). Regards, Martin _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com