#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;}


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS