1

回答一个特定问题时,我在尝试解释 Python 文档时偶然发现

参考os — Miscellaneous operating system interfaces中os.unameos.unsetenv(varname)的 文档,我想知道如何解释

可用性:Unix 的最新版本。

可用性:大多数版本的 Unix、Windows。

如何确定最近最多的意思。我如何知道我的 Python 脚本是否应该在我所针对的特定系统上正常工作。我是否应该始终相信事实

try
     <do something>
except <some-failure>:
     <fallback>

例如

try
    import os
    _uname = os.uname()
except AttributeError:
    import platform
    _uname = platform.uname()

即使我知道我所针对的 Unix 风格和版本?

4

1 回答 1

2

是的,您应该始终使用该try-except表单,因为它可以在“不安全”版本工作的任何地方工作,也可能在它不工作的地方工作。

但是,对于这个特定的 Python 函数,您可以使用一些特定领域的知识来推断它在哪里工作。os.uname是基于同名的系统调用。从man 2 uname中,我们得到“SVr4, POSIX.1-2001”的可用性,这意味着它将在任何基于 POSIX 标准 2001 版本或更高版本(或来自 SVr4 的版本)的 Linux 发行版上可用。也就是说,实际上,您将在个人计算机上遇到的每个 Linux 发行版。

于 2013-01-13T06:31:08.750 回答