2014年8月28日木曜日

Pythonの学習(3)


(1) Print文
・末尾に「,」(カンマ)を付与して出力をすると、改行されずに出力する
・ フォーマット出力 : 「%s」は文字列、「%d」は数値
・ファイル出力

  obj = open("test.txt","w") 
  print >> obj , "test test" 

(2) 例外処理
・try,except,finallyを使用する
・raiseを使ってエラーを発生させる(呼び出し元にエラーを返し、呼び出し元でエラー対応処理を行う)

 def calc(value_1,value_2):
    result = 0
    try:
        result = value_1 + value_2
    except:
        print "
エラー!"
        raise
    finally:
        print "終了"
    return result

def test(list_1,list_2):
    try:
        print calc(list_1[0],list_2[0])
        print calc(list_1[1],list_2[1])
        print calc(list_1[2],list_2[2])
    except:
        print "エラー発生!"


「raise」をコメントアウトするとtest関数のexcept配下の処理が実行されなくなります

エラー内容(スタックトレース)の取得
処理を実行中にエラーが発生すると、エラー内容(スタックトレース)が標準出力へ出力されますが、それを文字列で取りだす事も可能です。

     try:
        print test(100,"200")   ' "200"は文字列なのでエラーとなる
    except:
        print "--------------------------------------------"
        print traceback.format_exc(sys.exc_info()[2])
        print "--------------------------------------------"


(3)インポート
下のコードの自作モジュール「testpy」という名前で作業ディレクトリに保存する

------ test.py -----------------------
class tes_tclass:
    def __init__(self):
        print "create test_class"

    def test_method(self,str):
        print "call test_method"

        print str 
-----------------------------

    import test
    testclass1 = test.test_class()
        ' モジュール名.クラス名
    testclass1.test_method("1")         ' 「test_class」が保持している関数の呼出

    from test import test_class           '
「from」の後にモジュール名、「import」の後にクラス名
    testclass2 = test_class()              ' クラス名で直接使用出来
    testclass2.test_method("2")

0 件のコメント:

コメントを投稿