2015-05-18 3 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

Является ли этот отступ правильным? Почему 'main' вложен в функцию' 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

Спасибо, Роберт, я собираюсь скопировать и вставить новый файл. Я очень ценю последующие действия. – fullyconnected

Смежные вопросы