在字符串格式内调用类方法



考虑一下:

from datetime import datetime
now = datetime.now() 
now.strftime("%p") # returns 'PM'
'{0.day}'.format(now) # returns 22
'{0.strftime("%p")}'.format(now)
# gives
# AttributeError: 'datetime.datetime' object has no attribute 'strftime("%p")'

这似乎意味着我不能在格式内调用类方法(我猜这就是strftime)。

如何解决这个问题(假设我需要在字符串内部调用方法,并继续使用格式)?

你可以这么做。

>>> from datetime import datetime
>>> now = datetime.now()
>>> '{0:%p}'.format(now)
'PM'

这也适用于f-strings。

>>> f"{now:%p}"
'PM'

可以使用f-string:

from datetime import datetime
now = datetime.now() 
now.strftime("%p") # returns 'PM'
'{0.day}'.format(now) # returns 22
print(f'{now.strftime("%p")}')

:

from datetime import datetime
now = datetime.now() 
now.strftime("%p") # returns 'PM'
'{0.day}'.format(now) # returns 22
print('{0:%p}'.format(now)) 

  • strftime()和strptime()行为

你可以像这样使用f字符串:

from datetime import datetime
now = datetime.now() 
now.strftime("%p")
print(f'{now.day}')
print(f'{now.strftime("%p")}')

最新更新