CutePandaSh/zhdate

__format__ not defined?

t3190687 opened this issue · 4 comments

请问,方便把__format__() 写一下吗?

print(f"{zh_obj:>16}", flush=True)

这样的语法就会报错

TypeError: unsupported format string passed to ZhDate.format

非常感激

主要是,日期有三个数用以辨认,如果单纯地写成 {zh_obj:>xx} 这样的形式,其实反而会出误解,比如如果写{zh_obj:>6} 是大于六月的日期还是大于六号的日期?我们还是需要保证代码可读性的吧……

新年快乐;感谢回应 @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日

使用者自己可以藉由巢状结构,即, "{:>16}.format( "{}".format(zh_obj)) ,来避开 {:>16} 向右对齐失败的问题。
感谢

啊,非常抱歉,我确实理解错了你的意思(完了暴露自己没水平了😅),这确实是一个蛮有用的提议,可以试试加上