#topicpath ---- #contents ***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;}