首页 > 解决方案 > 未从自制模块定义的名称

问题描述

我为运行 Python 2.7.13 的 Raspberry Pi Model B V1.2 创建了一对程序。一个是包含类和函数的模块,另一个是使用该模块的简单示例程序。

这是类模块,保存为“motor_library.py”

class Motor(object):
    def __init__(self, name, pin1, pin2, pin3, pin4):
        ...
    def callMotor(self, direction, stepNumber, delay):
        ...

这是示例程序。

import motor_library

motor1 = Motor('motor1',4,17,23,24)
motor1.callMotor(1,1000,1)

运行示例程序后,我收到错误“NameError: name 'Motor' is not defined。” 这两个文件都在同一个目录中,我不知道是什么导致了错误。经过一番搜索,我找不到任何有类似问题的人,谁能伸出援助之手?

标签: pythonpython-2.7classmoduleraspberry-pi

解决方案


有两种选择:

当模块中定义的类只能作为其属性访问时,导入使模块在当前命名空间中可用的模块:

import motor_library

motor1 = motor_library.Motor('motor1',4,17,23,24)

或直接导入类:

from motor_library import Motor

motor1 = Motor('motor1',4,17,23,24)

推荐阅读