>>> class test:
... def method(self, x):
... print(x)
...
>>> t = test()
>>> test.method
<function test.method at 0x00000250DA56C1F0>
>>> t.method
<bound method test.method of <__main__.test object at 0x00000250DA1C0AF0>>
def test111(message): # мы не делаем тут await-операций, так что и async не нужен.
user_id = message.from_user.id
keyboard = types.InlineKeyboardMarkup()
callback_button1 = types.InlineKeyboardButton(text="повторить", callback_data="test1")
keyboard.add(callback_button1)
rrr = str(random.randint(1, 51))
return rrr, keyboard
async def test(message):
rrr, keyboard = test111(message)
await message.reply(f'Твое число{rrr}', reply_markup=keyboard)
Потому что у меня возникает впечатление, что ты пишешь самопальный сериализатор в JSON или что-то подобное.