简体   繁体   English

TypeError:'module'对象对python对象不可调用

[英]TypeError: 'module' object is not callable for python object

I'm getting the following error in my code. 我的代码中出现以下错误。 I am attempting to make a maze solver and I am getting an error that says: 我正在尝试制作一个迷宫求解器,我收到的错误是:

Traceback (most recent call last):
  File "./parseMaze.py", line 29, in <module>
    m = maze()
TypeError: 'module' object is not callable

I am attempting to create a maze object called m but apparently I'm doing something wrong. 我试图创建一个名为mmaze对象,但显然我做错了什么。

I wrote these lines in parseMaze.py 我在parseMaze.py写了这些行

#!/user/bin/env python

import sys
import cell
import maze
import array

# open file and parse characters
with open(sys.argv[-1]) as f:
# local variables
  x = 0 # x length
  y = 0 # y length
  char = [] # array to hold the character through maze
  iCell = []# not sure if I need
# go through file
  while True:
    c = f.read(1)
    if not c:
      break
    char.append(c)
    if c == '\n':
      y += 1
    if c != '\n':
      x += 1
  print y
  x = x/y
  print x

  m = maze()
  m.setDim(x,y)
  for i in range (len(char)):
    if char(i) == ' ':
      m.addCell(i, 0)
    elif char(i) == '%':
      m.addCell(i, 1)
    elif char(i) == 'P':
      m.addCell(i, 2)
    elif char(i) == '.':
      m.addCell(i, 3)
    else:
      print "do newline"
  print str(m.cells)

Here is my maze.py file which contains the maze class: 这是我的maze.py文件,其中包含迷宫类:

#! /user/bin/env python

class maze:

  w = 0
  h = 0
  size = 0
  cells =[]

# width and height variables of the maze
  def _init_(self):
    w = 0
    h = 0
    size = 0
    cells =[]


# set dimensions of maze
  def _init_(self, width, height):
    self.w = width
    self.w = height
    self.size = width*height

# find index based off row major order
  def findRowMajor(self, x, y):
    return (y*w)+x

# add a cell to the maze
  def addCell(self, index, state):
    cells.append(cell(index, state))

What is it that I am doing wrong? 我做错了什么?

It should be maze.maze() instead of maze() . 它应该是maze.maze()而不是maze()

Or you could change your import statement to from maze import maze . 或者您可以将import语句更改from maze import maze

The problem is the import statement, you can only import a class not module. 问题是import语句,你只能导入一个类而不是模块。 'import maze' is wrong rather use 'from maze import maze' “导入迷宫”是错误的而是使用'来自迷宫导入迷宫'

I guess you have overridden the builtin function/variable "module" by setting the global variable "module". 我猜你已经通过设置全局变量“module”覆盖了内置函数/变量“module”。 just print the module see whats in it. 只需打印模块,查看其中的内容。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM