sys.argv在python PyQt4中使用了什么

sys.argv在python PyQt4中使用了什么,第1张

sys.argv在python PyQt4中使用了什么

argc
(自变量计数=数量的参数)和
argv
(阵列,或参数值的列表中,根据语言) 是什么 *** 作系统给到程序作为参数。
在其他世界中:“它是如何被命名的”。

正如cptPH的答案明确指出的那样,这并非特定于

Qt
Python
。在这里看看:

https://zh.wikipedia.org/wiki/入口点

对于C和C ++:

https://zh.wikipedia.org/wiki/Entry_point#C_and_C.2B.2B

对于Python:

https://zh.wikipedia.org/wiki/Entry_point#Python

甚至shell脚本也有这些,称为“位置参数”:

http://www.tldp.org/LDP/abs/html/othertypesv.html

即使您的程序根本不使用命令行选项,无论是哪种语言或 *** 作系统(除非非常 非常 奇特的语言),您也将始终必须达到最低要求:

  • a
    argc
    之1,因为
  • argv
    数字0将是调用程序的名称(例如,如果您通过符号链接调用它,或者仅仅是因为您更改了构建过程的目标二进制文件,并且程序“ foo”现在是“ bar “-使用前:打印输出时不要使用硬编码的程序名称,而应使用
    argv
    数字0)。

迟早,您将编写使用选项/参数的程序。因此,您将使用这些。示例:您可能想添加“ –verbose”或“ –debug”选项。或“ –input-
file”(如果涉及文件处理)。随你。您的程序将在启动时解析这些argv,并通过明智的编码来相应地更改其运行时行为。

示例:即使Python也可以使用很多可选选项,并使用

argc
/处理它们
argv
。从Python 3手册页:

   python [ -B ] [ -b ] [ -d ] [ -E ] [ -h ] [ -i ] [ -I ]          [ -m module-name ] [ -q ] [ -O ] [ -OO ] [ -s ] [ -S ] [ -u ]          [ -v ] [ -V ] [ -W argument ] [ -x ] [ [ -X option ] -?  ]          [ -c command | script | - ] [ arguments ]

…这些

argv
对于Python解释器都是可能的。

编辑:

Qt应用程序的实际示例:

我参加了开发的Qt网络应用程序。它可以在两种互斥模式下运行:

  • “正常模式,
  • 或“间谍模式”:这很特殊,因为某些低级 *** 作需要网络管理员特权。

因此,我向其中添加了CLI

-s/--spy-mode
CLI选项。这些是可选的
argv

在应用程序代码的开头,我检查了此

argv
-s/--spy-mode
CLI选项

  • 如果在不带此选项的“普通”模式下运行 ,则甚至不会向用户显示与“间谍”模式相关的GUI元素,也不会实例化其任何类。这很干净,因为否则它在许多对象实例化/方法中无论如何都会失败,并且到处都是错误,因为低级调用仍然会失败,然后我将返回一个非零的返回码。这是不好的。如果您可能失败,请尽快失败。
  • 如果使用此
    argv
    选项以“间谍”模式启动
    ,则我在代码中要做的第一件事是检查主叫用户确实具有这种“网络管理员”特权,然后1 /(如果没有)发出明确的错误消息/d出窗口,说明“您应该具有blablabla特权,blablabal尝试sudo blablabla”,然后使用非零返回码退出;或者如果用户确实具有所需的特权,则返回2 /,请提供特殊的“间谍模式” GUI元素并将它们投入使用,没问题(并且隐藏了大多数GUI“正常模式”元素,在这种 *** 作模式下毫无意义)。

这是

argc/argv
有好处的。



欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5648301.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存