我正在用Python编写一个简单的程序,我想从一个文件中导入我在另一个类中创建的类。我的代码如下:
#file cPoint.py
import math
class Point:
def __init__(self,x,y):
self.x=x
self.y=y
def printC(self):
print ("(",self.x,",",self.y,")")
我的另一个文件是:
#file pointTest
import cPoint
def main():
p=Point(3,4)
p.printC()
if __name__=="__main__":
main()
问题是,当我从文件pointTest运行我的程序时,顺便说一下,它们都在同一个目录中,我得到了以下错误:
File "E:\python\pointTest.py", line 15, in <module>
main()
File "E:\python\pointTest.py", line 11, in main
p=Point(3,4)
NameError: name 'Point' is not defined
当我在同一个文件中测试我的程序时,它可以工作,并且当我使用以下命令从命令提示符调用该类时:
import cPoint
p=Point(3,4)
p.printC()
( 3 , 4 )
我错过了什么?我正在Anaconda中使用WinPython
您已经使用导入了文件cPoint.py
但是您不能像PointTest.py文件中的函数那样直接访问它的函数。同一文件中的函数可以仅通过其名称直接访问
无法直接访问另一个(导入)文件中的函数。相反,你应该写:
从其他文件调用函数或类时,必须指定在何处查找它们。您可以通过将包含它的文件名放在函数/类名前面来完成此操作,如:
cPoint.Point
。这告诉testPoint在cPoint中查找Point
另一个选项是将类直接导入testPoint,而不是整个文件。您可以通过将import语句替换为
from cPoint import Point
来实现这一点。这将允许您调用Point
,而无需指定它在哪个文件中(您不需要使用cPoint.Point
,只需调用Point
)因为您没有指定
Point
的位置,testPoint只在自身中查找Point
,而Point
只存在于cPoint中,所以它找不到它,导致抛出错误。我希望这能回答你的问题!:)相关问题 更多 >
编程相关推荐