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 に答える