【问题标题】:What variable name do you use for file descriptors?您对文件描述符使用什么变量名?
【发布时间】:2009-09-13 22:48:42
【问题描述】:

一个非常愚蠢的琐碎问题。典型的例子是f = open('filename'),但是

  • f 不是很具描述性。有段时间没看代码, 你可以忘记这是否意味着 “文件”或“函数 f(x)”或“傅立叶” 转换结果”或其他内容。EIBTI。
  • 在 Python 中,file 已被函数占用。

你还用什么?

【问题讨论】:

  • file() 在 2.x 中被弃用,然后在 3.x 中被彻底删除,所以恕我直言,这是公平的游戏
  • @NickT 好。我总是很困惑是使用file还是open

标签: python file naming-conventions explicit variable-names


【解决方案1】:
 data_file
 settings_file
 results_file
 .... etc

【讨论】:

  • “方法名称和实例变量 - 使用函数命名规则:小写字母,单词之间用下划线分隔,以提高可读性。” python.org/dev/peps/pep-0008
  • @endolith:您应该使用我对 Python 代码的建议。 Camel case 是 Java 风格的。
  • 正如我所说,“with”对我不起作用,“f”太短且无法描述(这是这个问题的重点)。我希望这个答案是 python 风格,但它仍然是最好的。
【解决方案2】:

您可以将其附加到开头,类似于匈牙利语的“file_fft”。

但是,我会尝试尽快关闭文件描述符,并且我建议使用这样的 with 语句,这样您就不必担心关闭它,并且更容易不丢失它。

with open("x.txt") as f:
    data = f.read()
    do something with data

【讨论】:

  • "with" 很棒!它确实清理了我的代码。您可以在 2.5 "from future import with_statement" 中使用它
  • 我用来打开文件的对象不适用于 with 语句。 "对象没有属性'exit'"
  • @endolith:然后使用contextlib.closing
【解决方案3】:

我很乐意使用f(用于函数或文件;-)如果该标识符的范围被限制在一个非常小的罗盘(例如with open('zap') as f: 通常预示着)。一般来说,具有大词法范围的标识符应该更长更明确,具有词法小/短范围/寿命的标识符可以更短且不那么明确,这适用于打开的文件对象与任何其他类型的对象一样多! -)

【讨论】:

    【解决方案4】:

    一般来说,如果文件对象的范围只有几行,f 是完全可读的——open 调用中文件名的变量名可能已经足够描述性了。否则something_file 可能是个好主意。

    【讨论】:

      【解决方案5】:

      通常我会使用“fp”作为短寿命文件指针。

      对于更长寿的描述,我将更具描述性。例如“fpDebugLog”。

      【讨论】:

        【解决方案6】:

        我宁愿使用以下之一:f, fp, fd

        有时inf / outf 用于输入和输出文件。

        【讨论】:

          猜你喜欢
          • 2017-04-13
          • 2014-04-24
          • 1970-01-01
          • 2018-03-10
          • 2021-05-08
          • 2013-03-20
          • 2015-01-04
          • 1970-01-01
          相关资源
          最近更新 更多