如何运行python函数
如何运行python函数。例如,如果我有一个名为test.py的文件和里面的函数像如何运行python函数
def closest_to(l,v):
num = l[0]
diff_min = abs(l[0] - v)
for i in xrange(1,len(l)):
diff = abs(l[i] - v)
if diff < diff_min:
diff_min = diff
num = l[i]
return num
我将如何测试函数closest_to?
任何在全球范围内的功能之外将作为脚本的一部分来执行:
def closest_to(l,v):
num = l[0]
diff_min = abs(l[0] - v)
for i in xrange(1,len(l)):
diff = abs(l[i] - v)
if diff < diff_min:
diff_min = diff
num = l[i]
return num
result = closest_to(val1, val2)
print result
如果你想有test.py仅与函数的定义,并想从调用这些功能另一个文件,可以从需要使用任何函数的文件中导入test.py。
# Some-other-file.py
import test
result = test.closest_to(val1, val2)
print result
如果test.py包含了很多功能,你知道你将只使用其中的几个,你可以导入这些特定的少数。
# Another-file.py
from test import closest_to, farthest_to
result = closest_to(val1, val2)
print result
farthest_to(val1, val2)
我做了一个假设,即功能farthest_to没有任何返回值,所以没有尝试存储或打印。如果你试图存储/打印这样的值,你会得到无。
?好吧,我只需要在文件的全局部分中调用该函数?我不能在文件外或直接从命令行调用它,而不在文件内部实现它? – 2013-02-27 03:27:42
我已经更新了我的答案和其他几个我认为正在寻找的替代方案。 – Tuxdude 2013-02-27 03:34:36
好吧,我用nearest_to([1,2,3],3)做了这个,但是它给了我一个错误'closest_to is not defined' – 2013-02-27 03:35:20
我会启动python解释器并导入文件。然后,你可以测试所有你喜欢:)
来源:What does if __name__ == "__main__": do?
当你的脚本由将它作为一个命令到Python解释器运行, 蟒蛇myscript.py 所有的代码是在缩进级别0被执行。定义的函数和类已经定义好了,但是他们的代码都没有运行。
所以,如果你的脚本的内容如下:
def closest_to(l,v):
num = l[0]
diff_min = abs(l[0] - v)
for i in xrange(1,len(l)):
diff = abs(l[i] - v)
if diff < diff_min:
diff_min = diff
num = l[i]
return num
if __name__ == '__main__':
val1 = 10
val2 = 200
print 'Closes to %s, %s =' % val1, val2,
print closest_to(val1, val2)
当您运行
$ python script.py
它将调用和输出你的函数的结果。或者我尝试使用doctests,如果我想尝试小方法,管理起来更容易。
例如:
def mysum(*args):
"""Returns the sum of all given arguments
>>> mysum(1,2,3,4)
10
>>> mysum(1,2)
3
>>> mysum(1, -1)
0
>>> mysum(1)
1
"""
return sum(*args)
if __name__ == "__main__":
import doctest
doctest.testmod()
运行它,并给它一个尝试:
$ python mysum_script.py
http://*.com/questions/3371255/writing-unit-tests-in-python- how-do-i-start – 2013-02-27 03:31:40