読者です 読者をやめる 読者になる 読者になる

YAMAGUCHI::weblog

土足で窓から失礼いたします。今日からあなたの息子になります。 当年とって92歳、下町の発明王、エジソンです。

exit()はstr

Pythonでちょっとしたスクリプトを書こうと思っていろいろといじってた。で、下記のようなコードを書いたらエラーが出た。

#!/usr/bin/python
import sys
argvs = sys.argv
argc = len(argvs)
if argc > 2:
    exit()
else:
    print argvs[1]

これを実行したら

    exit()
TypeError: 'str' object is not callable

なんのこっちゃと思ってじっと考えてみたら、exit()ってPythonインタプリタではCtrl+Dと同様なんですよね。str型の変数。というわけで上のソースを

-   exit()
+   sys.exit()

としたら無事に動きました。めでたし。

しかしPythonやってて気持ち悪いのは、なんでexit()はエラーが出るのにlen()は普通に使えるのかと。たまに一貫性がないと感じてしまいます。