使用函数简化字符串对齐?
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))
我有一个 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))