2017-09-28 31 views
0

我有大量文字的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' 

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

回答

2

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

这可能有助于:将字符串传递给方法并将其返回格式化。事情是这样的:

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

则:

print(align_center(s)) 
+0

你忘了'return'在'align_center'。 – ShadowRanger

+0

@ShadowRanger:很好。固定 –