python,内置打开的默认参数/参数?

时间:2012-03-21 23:04:51

标签: python

对,这里简单的问题。我无法使用谷歌找到答案并在此处查看。

我需要为python中的内置函数编写一些存根,如open(name[, mode[, buffering]])。但是,我似乎无法找到modebuffering的默认值 它似乎不是None

2 个答案:

答案 0 :(得分:2)

为了制作内置插件的包装器,你通常最终会做的是:

def myOpen(name, mode='r', buffer=None):
    if buffer:
        open_file = open(name, mode, buffer)
    else:
        open_file = open(name, mode)

原因是并非所有参数都可通过关键字(在这种情况下为buffer)访问。

答案 1 :(得分:1)

请参阅documentation of open()

  

如果省略 mode ,则默认为'r'

     

...

     

可选的 buffering 参数指定文件所需的缓冲区大小(...)如果省略,则使用系统默认值

涉及buffering的系统默认值:

  

指定缓冲区大小当前对没有setvbuf()的系统没有影响。指定缓冲区大小的接口不是使用调用setvbuf()的方法完成的,因为在执行任何I / O后调用时可能会转储核心,并且没有可靠的方法来确定是否是这种情况。