2015-05-18 25 views
2
import sys 

def Cat(filename): 

    f = open(filename,'rU') 
    text = f.read() 
    print ("text") 
    f.close() 

    def main(): 
     Cat(sys.argv[1]) 

if __name__ == '__main__': 
    main() 

我不斷收到如下圖所示以下錯誤:Python的主要誤差

NameError: name 'main' is not defined. 
+2

縮進是否正確?爲什麼'cat'嵌套在'Cat'函數中? – CoryKramer

+1

那麼,名稱'main()'沒有被定義。 'Cat().main()'被定義。但是'main()'不是。 –

+0

如果只有一條線,爲什麼要有一個主要功能?爲什麼不做'if __name__ =='__main__':Cat(sys.argv [1])'? – Kevin

回答

6

主要是不縮進正確。它應該沒有縮進。 現在只能從Cat訪問。

import sys 

def Cat(filename): 

    f = open(filename,'rU') 
    text = f.read() 
    print ("text") 
    f.close() 

def main(): 
    Cat(sys.argv[1]) 

if __name__ == '__main__': 
    main() 
+0

我刪除了縮進並仍然收到相同的錯誤。 – fullyconnected

+0

我將我的示例複製並粘貼到python文件中。保存並運行沒有錯誤。 –

+0

感謝Robert,我要複製並粘貼一個新文件。我非常感謝後續。 – fullyconnected