Существует ли компактное выражение f-строки для печати объекта, не являющегося строкой, с форматированием пространства?Python

Программы на Python
Anonymous
Существует ли компактное выражение f-строки для печати объекта, не являющегося строкой, с форматированием пространства?

Сообщение Anonymous »

f-строка позволяет использовать очень компактное выражение для печати объектов str с таким интервалом:
a = "Hello"
print(f'{a=:>20}')
a= Hello

Есть ли способ сделать то же самое для других объектов:
from pathlib import Path
b=Path.cwd()
print(f'{b=:>20}')
Traceback (most recent call last):
File "/usr/lib/python3.10/idlelib/run.py", line 578, in runcode
exec(code, self.locals)
File "
", line 1, in
TypeError: unsupported format string passed to PosixPath.__format__

Альтернатива:
print(f'b={str(b):>20}')
b= /home/user

Но этот метод теряет информацию об объекте, которая отображается при этом:
print(f'{b=}')
b=PosixPath('/home/user')

Желаемый результат — печать
b= PosixPath('/home/user')

Несколько напечатанных операторов должны отображать что-то вроде:
self.project= PosixPath('/home/user/project')
self.project_a= PosixPath('/home/user/project/project')
self.longer= PosixPath('/home/user/project/project/icons/project/pic.png')
self.PIPFILELOCK= PosixPath('/home/user/project/Pipfile.lock')
self.VIRTUALENV= PosixPath('/home/user/.local/share/virtualenvs/project-mKDFEK')


Подробнее здесь: https://stackoverflow.com/questions/785 ... h-space-fo

Вернуться в «Python»