3

我注意到 SO 中与 Python 有关的相当多的问题是关于人们搞砸 Sys -class、OS class 和 no class。例如,一个容易混淆的情况是os.open("something")open("something")sys.open("something")。我还没有理解类命名背后的原因,也许这只是一种演变。

  1. 我想听听why他们是用他们现在的名字创建的吗?
  2. 命名是因为在班级中有 FD 之类的事情吗?
  3. 是因为某些类需要特殊权限而命名吗?
  4. 命名在多大程度上是一种设计解决方案?

如果你不能回答这个问题,请随意提出一些好的助记符来记住这些类并区分它们。

4

2 回答 2

3

容易混淆的地方在于:os.open("something")、open("something") 和 sys.open("something")。

“助记符”是文档,可在线获得或下载到您的工作站。

“助记符”很容易。使用符合您要求的一种。

为什么他们是用现在的名字创建的

为了避免语言混乱,请在单独的库中。

命名是因为在班级中有 FD 之类的事情吗?

大概。FD 是操作系统功能,而不是语言功能。这就是为什么它们在一个单独的库中。

是因为某些类需要特殊权限而命名吗?

一点也不。

命名在多大程度上是一种设计解决方案?

为了避免语言混乱,请在单独的库中。

于 2011-04-09T02:39:37.437 回答
2

内置函数是您经常需要的东西。您不必导入任何模块来访问它们,因此也不要使用任何模块前缀。open()就是这样一个功能,因为打开文件是一种非常常见的操作。它打开一个文件并返回一个文件对象,这很容易使用。

os模块用于操作系统接口。os.open()是操作系统文件接口的原始接口。它打开一个文件并返回裸文件描述符,您通常不需要任何东西。

sys模块用于特定于系统的事物。sys.open()不存在。

于 2011-04-09T02:40:02.163 回答