Adding default arguments to int.to_bytes() is both useful on its own merits and kind of too easy *not* to do, so... https://bugs.python.org/issue45155 https://github.com/python/cpython/pull/28265 -Barry
On Sep 9, 2021, at 12:12, Barry Warsaw <barry@python.org> wrote:
Signed PGP part On Sep 9, 2021, at 10:56, Ethan Furman <ethan@stoneleaf.us> wrote:
On 9/9/21 9:37 AM, Barry Warsaw wrote:
While I think int.to_bytes() is pretty obscure (I knew about it, forgot about it, and learned about it again!) I’m not so sure it’s any less obscure than a proposed bytes.fromint().
So why don’t we just relax int.to_bytes()’s signature to include natural default values:
int.to_bytes(length=1, byteorder=sys.byteorder, *, signed=False)
Then I ought to be able to just do
(65).to_bytes() b’A’
That seems so much worse than
bchr(65) b'A'
;-)
Maybe, but given that you can *already* do the equivalent of bchr() with:
(65).to_bytes(1, sys.byteorder) b'A'
it seems like a small stretch to make that more usable, and that would outweigh adding a difficult to understand new builtin. TOOWTDI.
In case you really want bchr():
def bchr(x): return x.to_bytes(1, sys.byteorder)
bchr(65) b’A'
Cheers, -Barry