Я все еще считаю, что этот вопрос с высокой вероятностью является проблемой XY .
Тем не менее, относительно вашего вопроса в его нынешнем виде: Если вы не хотите изменять print
, вам осталось только изменить возвращаемое значение вашей функции a
. Ваш комментарий выше говорит:
Я хочу вернуть dict
Это похоже на простое возвращение измененного строкового представления {'row_contents': content}
на самом деле не то, что вы ищем. Тем не менее, dict.__repr__
сам по себе только для чтения, поэтому я думаю, что наиболее близким решением было бы вернуть экземпляр пользовательского dict
подкласса:
class CustomDict(dict):
def __repr__(self):
return "{" + ", ".join([repr(k) + ": " + str(v) for k, v in self.items()]) + "}"
def a(content):
return CustomDict({'row_contents': content})
print(a("Hello"))
print(isinstance(a("Hello"), dict))
, который печатает:
{'row_contents': Hello}
True
Возможно, вам потребуется улучшить CustomDict.__repr__
в зависимости от того, какие модификации необходимы для обеспечения желаемого результата. Вы также можете изменить исходное строковое представление super().__repr__()
.