将 int 格式化为带有 0x 前缀的大写十六进制字符串?

Format int as an uppercase hex string with 0x prefix?

我有一个整型变量:

>>> a = id("string")

并且我想将 a 格式化为带有前缀 0x 的大写十六进制字符串。执行此操作的最佳方法是什么?

这些是一些不正确的输出:

>>> f"{a:#x}"
'0x115afcae8'

>>> f"{a:#X}"
'0X115AFCAE8'

>>> f"{a:X}"
'115AFCAE8'

可以通过在最后一个前面加上0x得到正确的输出:

>>> f"0x{a:X}"
'0x115AFCAE8'

但这真的是最干净的方式吗?奇怪的是我无法找到一种方法来仅使用极其庞大的 string formatting mini-language.

好像真的是

>>> f"0x{a:X}"
'0x115AFCAE8'

是执行此操作的最佳方法,因为仅使用字符串格式无法做到这一点。