从不同的.py文件创建Python对象

时间:2014-02-13 23:04:12

标签: python

在一个文件中,我创建了一个名为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'。 我在哪里弄错了?

2 个答案:

答案 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

此外,除非您的代码真正像您提供的那样简单,否则错误可能来自循环导入。确保在他们有机会完全执行之前,你不要试图将两个模块相互导入。