__format__ not defined?
t3190687 opened this issue · 4 comments
t3190687 commented
请问,方便把__format__() 写一下吗?
print(f"{zh_obj:>16}", flush=True)
这样的语法就会报错
TypeError: unsupported format string passed to ZhDate.format
非常感激
EillesWan commented
主要是,日期有三个数用以辨认,如果单纯地写成 {zh_obj:>xx}
这样的形式,其实反而会出误解,比如如果写{zh_obj:>6}
是大于六月的日期还是大于六号的日期?我们还是需要保证代码可读性的吧……
t3190687 commented
新年快乐;感谢回应 @EillesWan
我的意思是, {str:>16} 是向右对齐16字符的意思,不是大于还是小于16号
我发现这个可能是python对于unicode的特色;如果我把 str 返回的字串再拿去format() 一次,结果就可以向右对齐。
可能就是这个nested 结构看了复杂,但是可以用就是了。感谢。
python3 -c 'from zhdate import ZhDate; d1=ZhDate(2024,1,1); s1=("{}".format(d1)); print("{:>16}".format(s1))'
农历2024年1月1日
# or
python3 -c 'from zhdate import ZhDate; d1=ZhDate(2024,1,1); print("{:>16}".format("{}".format(d1)))'
农历2024年1月1日
t3190687 commented
使用者自己可以藉由巢状结构,即, "{:>16}.format( "{}".format(zh_obj)) ,来避开 {:>16} 向右对齐失败的问题。
感谢
EillesWan commented
啊,非常抱歉,我确实理解错了你的意思(完了暴露自己没水平了😅),这确实是一个蛮有用的提议,可以试试加上