【问题标题】:Simplified string alignment with a function?用函数简化字符串对齐?
【发布时间】:2018-03-09 15:03:17
【问题描述】:

我有一个 python 程序,其中包含很多要对齐的文本,而 .format 看起来很乱,所以我计划在 print 的末尾使用 .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末尾不带括号)

它返回:

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

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

【问题讨论】:

    标签: python function user-defined-functions text-alignment


    【解决方案1】:

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

    这可能会有所帮助:将字符串传递给方法并将其格式化返回。像这样的:

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

    然后:

    print(align_center(s))
    

    【讨论】:

    • 你在align_center中忘记了return
    猜你喜欢
    • 2013-10-10
    • 1970-01-01
    • 2012-01-04
    • 1970-01-01
    • 1970-01-01
    • 2014-04-11
    • 1970-01-01
    相关资源
    最近更新 更多