在python console中怎么传递argv

已经写好了OptionParser

  • 在shell中这样执行ok的

    python too.py -d /usr/src/

    打印len(sys.argv[0:])的值为3

  • 在python终端就出错了

    >>> import too
    >>> too() -d /usr/src/

    打印len(sys.argv[0:])的值为0
    就是说参数没有传递过去

请问大家是怎么处理的 是不是因为__main__的option和module的不一样?

阅读 4.2k
1 个回答

其实是因为python的shell和bash不同额,其语法规则是不允许这样子的,传参只能通过元祖的形式,而bash是基于字符额,所以支持这种传参方式。python的这一方式也不过是为了调用方便。。。

不过爱玩黑魔法的可以玩这个:

>>> too = lambda x: lambda y: x+y
>>> too(1)(2)
3
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题