Давайте следующий пример:Как передать байты в качестве ключа аргументов ключевого слова для функций?
def fun(**args):
print(str(args))
dic = {'name': 'Pulkit'}
fun(**dic)
Этот код работает отлично, и у меня есть следующий вывод:
{'name': 'Pulkit'}
Теперь позволяет передавать значение как байт:
dic_vb = {'name': b'Pulkit'}
fun(**dic_vb)
Это также работает нормально и имеет следующий выход:
{'name': b'Pulkit'}
Но все меняется, когда я пытаюсь иметь ключ в байтах:
dic_kb = {b'name': 'Pulkit'}
Это приводит к TypeError говоря:
TypeError: fun() keywords must be strings
Есть ли способ, мы можем передать байты в качестве аргументов ключевых слов. Я также проверил код CPython на repo, который имеет дело с ключевыми словами и кажется, что мы не можем пройти. Есть ли какое-либо обходное решение или мне нужно, чтобы убедиться, что unicodes переданы.
Я имею дело с кодовой базой, где у нас есть много таких экземпляров на Python 2, и ее нужно портировать на Python 3. Таким образом, возможен только преобразование всех аргументов ключевого слова в unicodes?