На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: RaD
  
    > Запись в файл значения количества элементов списка , ошибка TypeError: 'list' object is not callable
      Всем привет!
      Есть : Есть список, количество элементов можно узнать так
      ExpandedWrap disabled
        print(len(MyList))

      Вопрос такой делал тест:
      ExpandedWrap disabled
        MyList = ["Самара", "Сочи", "Мурманск", "Анапа"]
        #print( type( len(MyList)) )
        f = open('C:...some puth...\\OutTest.txt', 'w')
        f.write('количество городов: '+str( len(MyList))+'\n' )
        #f.writelines (MyList)
        for line in MyList:
           f.write(line+ '\n')
        f.close()

      Работает. Изменил на другой код с подбором из файла и сортировкой перед записью в файл.
      ExpandedWrap disabled
        f = open('C:...some puth...\\In.txt', 'r')
        str = f.read()
        str = str.split(',')
        f.close()
        #print(str)
         
        L =[]
        for line in str:
            L.append(line+ '\n')
            
        L.sort()
         
        print(len(L))
         
        f = open('C:...some puth...\\Out.txt', 'w')
        f.write('Список кошачих пород:'+'\n')
        f.write('количество пород: '+str( len(L) )+'\n')
        f.writelines (L)
        #for line in L:
        #   f.write(line+ '\n')
        f.close()
        print('Работа завершена')

      Идет ошибка
      File "C...Prog1.py", line 21, in <module>
      f.write('количество пород: '+str( len(L) )+'\n')
      TypeError: 'list' object is not callable
      Также, если закомментировать данную строку будет работать.
      Заранее :thanks:
      Сообщение отредактировано: RusSun -
        Здесь str - переменная, а не стандартная функция?
          Цитата MBo @
          Здесь str - переменная, а не стандартная функция?

          Тогда достаточно сделать так после использования str
          ExpandedWrap disabled
            del str

          И все будет работать)
            Лучше не использовать переменные с именами стандартных функций
              Цитата MBo @
              Лучше не использовать переменные с именами стандартных функций

              Это верно. :good:
              Но неплохо знать, что есть Вариант : create, use, delete.
              Да, проще просто не пересекаться с названием функции.

              Как и знать что, если такое присвоение сделать, то функция уже не будет работать = будет переменной.
              Сообщение отредактировано: RusSun -
              0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
              0 пользователей:


              Рейтинг@Mail.ru
              [ Script execution time: 0,0199 ]   [ 15 queries used ]   [ Generated: 28.03.24, 22:47 GMT ]