如何通过命令行测试一个多功能的Python文件中的一个Python函数?

2024-03-28 20:15:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个python文件有什么事吗里面有很多功能。我想一次测试一个函数,传入变量并测试输出。如何使用变量从命令行测试一个函数以查看输出?你知道吗


Tags: 文件函数命令行功能
2条回答

启动解释器并导入模块。你知道吗

~$ python
Python 2.7.4 (default, Apr 19 2013, 18:28:01) 
[GCC 4.7.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from something import yourfunc
>>> yourfunc(a,b,c,d)

你看不到这个确切的文本,但是类似的东西:YMMV。你知道吗


完整示例:

这是有什么事吗地址:

def funcA(): return 'A'
def twice(n): return 2 * n
def swap(a, b): return b, a

现在您在shell中的目录与有什么事吗(在我的例子中~/stackoverflow):

~/stackoverflow$ python
Python 2.7.4 (default, Apr 19 2013, 18:28:01) 
[GCC 4.7.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from something import twice, swap
>>> twice(24)
48
>>> swap(1,2)
(2, 1)
>>>

如果有各种python安装,请调用所需的安装,例如python2.7python3.3python3.4。或者指向其中一个的链接,例如在我的盒子上(/usr/bin/)python指向python2.7的链接和(/usr/bin/)python3指向python3.3的链接。你知道吗

您需要在模块中设置一些特殊的内容,以便能够从命令提示符调用其中包含的函数。比如:

def a(*args, **kwargs):
    print("fn a, called with: {}".format(str(args)))

def b(*args, **kwargs):
    print("fn b, called with: {}".format(str(args)))

def call_fn(args):
    fn, args = args[0], args[1:]
    if len(args) == 1:
        args = args[0]

    fn = eval(fn)
    fn(args)

if __name__ == '__main__':
    import sys    
    call_fn(sys.argv[1:])

现在:

c:\temp>python my_module.py a arg1, arg2, kwarg1=something

结果:

fn a, called with: (['arg1,', 'arg2,', 'kwarg1=something'],)

相关问题 更多 >