#topicpath ---- #contents ***改行をそのまま文字列であつかいたい [#te4d69fb] 「"""」や「'''」で始めて終わることで、その間の文字列はそのまま扱われるようになります。 text1 ="""1行目 2行目 3行目""" text2 ="""1行目 2行目 3行目""" print ("----") print (text1) print ("----") print (text2) print ("----") 結果は ---- 1行目 2行目 3行目 ---- 1行目 2行目 3行目 ---- このとおり。文字列内の改行はそのまま改行と解釈され、さらにインデントもそのままタブとして反映されるということですね。ちなみに、複数行コメントを書く際にこれを使って書いているコードもありました。 ''' /* * Copyright 2010-2016 Amazon.com, Inc. or its affiliates. All Rights Reserved. ..... */ ''' こんな感じで。なるほどね。。 ***finallyがよばれない?? [#zbe6d819] Linux上で、sudo kill した場合、try/finallyのfinallyがよばれないっぽい。フォアグラウンドで実行してctrl+cした場合は問題ないのですが。。 import sys,signalしといて def cleanup(*args): sys.exit(0) signal.signal(signal.SIGINT, cleanup) signal.signal(signal.SIGTERM, cleanup) とか書いておくと、よばれるようになりますが、コレでいいのかな。。。 ***他ファイルのメソッド呼び出し [#jb7fd7e3] myutils.py に定義された def cleanup(xx): などのメソッドを呼び出すには、呼び出し側で from myutils import cleanup,sysout と宣言しておけば、 cleanup("hoge") などと直接呼び出せる。 ***public static void main ぽく書きたい [#df1b09f6] PythonにはJavaでいう public static void main(String[] args){ ... } みたいな概念がなく、 sudo python3 xxx.py と呼び出すと、先頭から順次実行されるっぽい。 いわゆるmainメソッドを作るやり方は以下の通りです。 import sys def main(args): メイン処理 if __name__ == "__main__": main(sys.argv) 「 __name__ 」 には、スクリプトとして直接呼び出されたときのみ((よするに sudo python3 xxx.py てこと))、"__main__" と入っているらしいので、それを判定して main メソッドを呼び出すとすれば public static void main の完成です。ついでにコマンドライン引数を上記のように渡せば、引数も同様にJavaぽくあつかうことができます。あ、引数は0番目はプログラム名なので、1番目からが実際の引数です。 参考 -[[基本構文 - Python入門から応用までの学習サイト>http://www.python-izm.com/contents/introduction/syntax.shtml#a004]] ---- この記事は #vote(おもしろかった,そうでもない) #comment #topicpath SIZE(10){現在のアクセス:&counter;}