Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python pydoc生成的带有文件句柄参数的帮助文本_Python - Fatal编程技术网

Python pydoc生成的带有文件句柄参数的帮助文本

Python pydoc生成的带有文件句柄参数的帮助文本,python,Python,我有一个具有以下参数列表的函数: def print(*line, sep=' ', end='\n', file=sys.stdout, default = 'full'): 不幸的是,模块的pydoc帮助文本显示如下: FUNCTIONS print(*line, sep=' ', end='\n', file=<_io.TextIOWrapper name='<stdout>' mode='w' encoding='cp850'>, default='full')

我有一个具有以下参数列表的函数:

def print(*line, sep=' ', end='\n', file=sys.stdout, default = 'full'):
不幸的是,模块的pydoc帮助文本显示如下:

FUNCTIONS
print(*line, sep=' ', end='\n', file=<_io.TextIOWrapper name='<stdout>' mode='w' encoding='cp850'>, default='full')
函数
打印(*行,sep='',end='\n',file=,default='full')
如何让pydoc将file参数设置为
file=sys.stdout
,而不是显示对象的血淋淋的细节

顺便说一句,Python 3.2。

简易解决方案:

def print(*line, sep=' ', end='\n', file=None, default = 'full'):
    '''If file is None, defaults to sys.stdout.'''

    if file is None:
        file = sys.stdout

(但请考虑不要使用<代码>打印< /COD>和<代码>文件<代码>作为标识符。<代码>打印< /COD> ESP将永远破坏Python 2兼容性。

< P>易解:

def print(*line, sep=' ', end='\n', file=None, default = 'full'):
    '''If file is None, defaults to sys.stdout.'''

    if file is None:
        file = sys.stdout

(但请考虑不要使用<代码>打印< /COD>和<代码>文件<代码>作为标识符。<代码>打印< /代码> ESP将永远破坏Python 2兼容性。仅仅为了获得可读的帮助文本而不得不更改代码,这看起来确实很痛苦。我查看了pydoc模块,发现它是如何获取函数信息的,我看不到简单的解决方法(除了修改代码)。顺便说一句,这个项目只是Python3。谢谢你的建议,但我不关心向后兼容性。这只是代码的一小部分,其余部分无论如何都不可能在Py2上工作。谢谢。仅仅为了获得可读的帮助文本而不得不更改代码,这看起来确实很痛苦。我查看了pydoc模块,发现它是如何获取函数信息的,我看不到简单的解决方法(除了修改代码)。顺便说一句,这个项目只是Python3。谢谢你的建议,但我不关心向后兼容性。这只是代码的一小部分,其余部分无论如何都不可能在Py2上工作。