在一个文件中,我创建了一个名为Robot的类,但当我尝试在另一个文件中创建该类的对象时,它说:'module'对象没有属性'Robot'
main.py
import robot as rob
robot=rob.Robot()
robot.py
class Robot(object):
def __init__(self):
return 0
def otherFunctions():
return 0
它说:'module'对象没有属性'Robot'。 我在哪里弄错了?
答案 0 :(得分:4)
你的代码编写方式是正确的(除非删除你可能是为了简洁)
当您import
时,Python会检查sys.path
以导入位置,并导入它可以找到的第一个 robot
。
有几种方法可以解决这个问题:
import robot
print robot.__file__
在robot.py
中
print("hello!")
import sys
sys.path.insert('/path/to/correct/robot/')
import robot
答案 1 :(得分:1)
似乎你的robot.py文件中的语法不正确。您可以通过将robot.py文件更改为以下内容,以最直接的方式更正错误:
class Robot(object):
def __init__(self):
pass
def other_functions(self):
pass
请注意,我使用了蛇形外壳来实现other_functions
功能。不要在Python中使用camelCasing。这不是惯用的。另外,我向self
添加了other_functions
参数,因此如果您尝试从TypeError
实例调用它,则不会获得Robot
。
此外,除非您的代码真正像您提供的那样简单,否则错误可能来自循环导入。确保在他们有机会完全执行之前,你不要试图将两个模块相互导入。