使用函数简化字符串对齐?

Simplified string alignment with a function?

我有一个 python 程序,其中有很多我想对齐的文本,而 .format 看起来很乱,所以我计划在 [=16= 的末尾使用 .center(shutil.get_terminal_size().columns) ] 像这样:

import shutil
print("Hello world!".center(shutil.get_terminal_size().columns))

并且应该在我的控制台中心返回,确实如此。

但是,如果我想将其简化为一个函数:

def align_center():
    center(shutil.get_terminal_size().columns)

并将其添加到打印函数的末尾:

print("Hello World!".align_center())

(我也试过.align_center末尾没有括号)

它returns:

AttributeError: 'str' object has no attribute 'align_center'

我很确定我早些时候让它正常工作,但我改变了一些东西然后它停止了,我疯了吗,通过函数进行这种简化是不可能的?我是不是应用错了?

如果您只是将它附加到字符串,我认为您永远不会让它工作。这将使它成为一个属性,并且 str 对象不太可能具有与您创建的任意方法的名称相匹配的属性。

这可能会有所帮助:将字符串传递给方法并 return 对其进行格式化。像这样:

def align_center(s):
    return s.center(shutil.get_terminal_size().columns)

然后:

print(align_center(s))