调用函数的问题 - "未定义"

时间:2015-03-11 03:44:15

标签: python

主题问:如何在主程序中导入/引用另一个已编写的(外部)程序?

如果我在其中有一个名为Squares.py的文件:

def squares(x):
     for i in x:
         return i*i
squares(x) 

...如何告诉伞形程序引用它?我是否在开销程序的顶部使用导入命令?我该怎么写呢?

2 个答案:

答案 0 :(得分:1)

由于import Squares未在最后一行定义,因此您无法x

def squares(x):
     for i in x:
         return i*i
squares([23]) 

您需要先解决该问题

这个功能本身可能不会做你想要的。 x应该是list还是int还是其他什么?

假设你修复了这些问题,你应该用测试来隔离底部

def squares(x):
     for i in x:
         return i*i
if __name__ == "__main__":
    squares([23]) 

这将阻止在导入模块时隐式调用squares

然后您就可以使用:

import Squares
result = Squares.square([23])

from Squares import square
result = square([23])

答案 1 :(得分:0)

您显示的squares.py模块已损坏 - 在运行或导入时,它将因异常而死亡,因为它使用未定义的全局变量squares调用x

假设您的模块已损坏,并且它位于sys.path上列出的目录中,那么

import squares

在另一个Python文件的顶部将导入squares作为另一个Python文件中的模块。