2017-09-28 11 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) 

と印刷のfuctionの最後にそれを追加します:私は、単一の関数にこれを簡素化したい場合は

しかし、

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) 

:あなたはalign_center` `に`へreturn`を忘れてしまった

print(align_center(s)) 
+0

。 – ShadowRanger

+0

@ShadowRanger:良いキャッチ。一定 –

関連する問題