アカウント名:
パスワード:
あー、なるほど。
ってことは、Pythonというのは「ファイル全部を読み込んで、シンボル解決を全部やって、それから実行」しているんじゃなくて、あくまでも
「1行づつ読んでは実行している。 ただし、def とか class は Lispでいう defun と同じで、 とりあえず quote された状態に相当するのでとりあえず読むだけ。
どこかで評価しなくちゃいけない行が現れたら、 その時までに読み込んで定義されたシンボルを使って 実行できれば実行する。無理だったらエラー」
って事か…暗黙のスコープとして「今まで読んだ分」があり、それを回避するには、一番最後までは全部 quote 状態にして、最後に「Go!」って書かなくちゃいけない…ギャース、その暗黙のスコープは(T.T) すごくはまるもとだ。
参考資料をかなり厳選しないといけなさそう。安直に書いてるものとかだと大嘘が書いてありそうだ…。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
吾輩はリファレンスである。名前はまだ無い -- perlの中の人
参考までに (スコア:1)
#下記の定型を使用するのが良いかと。
def xxxx():
""" 何か処理 """
pass
def main():
xxxx()
pass
if __name__ == '__main__':
main()
python の特徴として、モジュール化に特別な書式が不要なのだが、
逆に import 時に不要な実行を行わないよう __name__ の値を評価し、
モジュールとして読み込まれたのか判別するのが一般的。
Re:参考までに (スコア:1)
あー、なるほど。
ってことは、Pythonというのは
「ファイル全部を読み込んで、シンボル解決を全部やって、それから実行」
しているんじゃなくて、あくまでも
「1行づつ読んでは実行している。
ただし、def とか class は Lispでいう defun と同じで、
とりあえず quote された状態に相当するのでとりあえず読むだけ。
どこかで評価しなくちゃいけない行が現れたら、
その時までに読み込んで定義されたシンボルを使って
実行できれば実行する。無理だったらエラー」
って事か…暗黙のスコープとして「今まで読んだ分」があり、それを回避するには、一番最後までは全部 quote 状態にして、最後に「Go!」って書かなくちゃいけない…ギャース、その暗黙のスコープは(T.T) すごくはまるもとだ。
参考資料をかなり厳選しないといけなさそう。安直に書いてるものとかだと大嘘が書いてありそうだ…。
fjの教祖様