android - 理解 Python 脚本所需的帮助

标签 android python repository

我正在分析来自 Google 的 repo 脚本(说明在 http://source.android.com/source/downloading.html )

repo 脚本是用 Python 编写的。那里有一部分说:

if sys.argv[-1] =='#%s' % magic

有人能从语义上解释一下那行的意思吗?我对我的 Python 有点生疏。整个代码块是:

magic='--calling-python-from-/bin/sh--'
"""exec" python -E "$0" "$@" """#$magic"
if __name__ == '__main__':
    import sys
    if sys.argv[-1] =='#%s' % magic:
        del sys.argv[-1]

最佳答案

一次一件:

  • sys.argv保存传递给 Python 脚本的命令行参数列表。这意味着 sys-argv[-1] 是最后一个参数。
  • '#%s' % 魔法% 格式化你的字符串,这意味着你看到 %s 的地方会有 magic 的值(如果 magic 不是将被转换的字符串:str(magic))。在您的代码中,该字符串将是:'#--calling-python-from-/bin/sh--'
  • del sys.argv[-1]。这是不言自明的:意味着列表 sys.argv 的最后一个值将被删除。

总而言之,这意味着:如果最后一个命令行参数是#--calling-python-from-/bin/sh--,那么该参数将从sys.argv.

关于android - 理解 Python 脚本所需的帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9037165/

相关文章:

java - java中用simplexml反序列化xml

机器人 : using opencv for image recognition

python imaplib gpg 文件内容转换为消息

python - 更改具有特定索引的行的值

具有目录范围的 Git 配置,包含多个存储库

android - 制作字体助手类

android - Android AsyncTask崩溃

python - 在 Python 中向 google 表单发送 POST 请求

svn - 重命名SVN文件夹后如何将其拆分到自己的存储库中?

entity-framework - 使用 DDD 和 IoC 为 EF4 实现存储库