Что означает «модуль» объект не является подписным »в контексте этого кода?

1

Запуск test.py дает

Traceback (most recent call last):
  File "test.py", line 3, in <module>
    Map = Parser.Map(os.path[0] + "\\start.wmap")
TypeError: 'module' object is not subscriptable

Parser.py

import configparser
def StringIsNumber(String):
    try:
        int(String)
    except:
        return False
    return True
class Map:
    Parser = configparser.RawConfigParser()
    MapURL = ""
    def __init__(self, Map):
        self.Parser.read(Map)
        self.MapURL = Map
    def TileTypes(self):
        #All numerical sections can be assumed to be tiles
        return [n for n in self.Parser.sections() if StringIsNumber(n)]

test.py

import Parser
import os
Map = Parser.Map(os.path[0] + "\\start.wmap")
print(Map.TileTypes())
  • 0
    К сожалению! Я использовал os.path вместо sys.path! Спасибо всем, кто ответил.
Теги:

4 ответа

2
Лучший ответ

os.path - это модуль, и вы используете его в качестве списка, я думаю, что вы ищете sys.path.

1

То, что вы не можете получить свои свойства, используя поиск ключа/индекса, например, something[property]

0

os.path - это модуль. Неясно, как вы думаете, os.path[0] собирается сделать для вас, поскольку он не является итерируемым и не имеет 0-го элемента.

0

Вы пытаетесь индексировать os.path, который является модулем. Subscriptip означает, что вы используете квадратные скобки для объекта. Это допустимо, например, для объекта dict, но не для модуля.

Ошибка в os.path[...]

  • 0
    Ах! Я использовал os.path вместо sys.path! Спасибо!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню