“'模块'对象不可订阅”是指在此代码的上下文中?

时间:2011-09-05 18:13:13

标签: python

运行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())

4 个答案:

答案 0 :(得分:2)

os.path是一个模块,您将其用作列表我认为您正在寻找sys.path

答案 1 :(得分:1)

您无法使用something[property]

等键/索引查找来获取其属性

答案 2 :(得分:0)

os.path是一个模块。目前还不清楚你认为os.path[0]会为你做什么,因为它不是可迭代的,也没有第0个元素。

答案 3 :(得分:0)

您尝试下标os.path,这是一个模块。订阅意味着您在对象上使用方括号。这对于例如合法的一个dict对象,但不适用于模块。

错误在os.path[...]