Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.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模块包含文件对象方法?_Python_Python 3.x - Fatal编程技术网

哪个python模块包含文件对象方法?

哪个python模块包含文件对象方法?,python,python-3.x,Python,Python 3.x,虽然使用help搜索大多数有明确help(module.method)安排的方法很简单,例如help(list.extend),但我无法确定如何在python的内置帮助函数中查找方法.readline() .readline属于哪个模块?如何在帮助中搜索.readline和相关方法 此外,是否有任何方法可以使用解释器来确定方法将来属于哪个模块?不要试图找到该模块。创建所需类的实例,然后调用该实例方法的帮助,它将为您找到正确的帮助信息。例如: >>> f = open('path

虽然使用
help
搜索大多数有明确
help(module.method)
安排的方法很简单,例如
help(list.extend)
,但我无法确定如何在python的内置帮助函数中查找方法
.readline()

.readline
属于哪个模块?如何在
帮助
中搜索
.readline
和相关方法


此外,是否有任何方法可以使用解释器来确定方法将来属于哪个模块?

不要试图找到该模块。创建所需类的实例,然后调用该实例方法的帮助,它将为您找到正确的帮助信息。例如:

>>> f = open('pathtosomefile')
>>> help(f.readline)
Help on built-in function readline:

readline(size=-1, /) method of _io.TextIOWrapper instance
    Read until newline or EOF.

    Returns an empty string if EOF is hit immediately.
x = open('some_file.txt', 'r')
help(x.readline)

在我的例子(Python3.7.1)中,它是在类型
\u io.TextIOWrapper
上定义的(公开为
io.TextIOWrapper
,但是
help
不知道),但是记住这种事情并没有多大帮助。知道如何通过反省你所关心的具体事情来解决这个问题更为广泛。在这种特殊情况下,不尝试猜测是非常重要的,因为
open
函数可以根据提供的参数返回几个不同的类,每个类都有不同的方法,包括
io.BufferedReader
io.BufferedWriter
io.BufferedRandom
io.FileIO
,每个都有自己版本的
readline
方法(尽管为了一致性起见,它们都共享一个类似的界面)。

来自
帮助(打开)
的文本:

另见本节

因此,您正在查看
TextIOWrapper
BufferedReader
BufferedWriter
,或
BufferedRandom
。它们都有自己的类层次结构集,但只要说它们在某个点上共享了
IOBase
超类就足够了——这就是声明函数
readline()
readlines()
的地方。当然,每个子类针对其特定模式实现这些函数的方式都不同——如果您这样做的话

help(_io.TextIOWrapper.readline)
你应该得到你要找的文件


特别是,无论您需要哪个版本的
readline
,您都很难访问文档,因为您不必费心弄清楚它是哪个类。实际上,您也可以对对象调用
帮助。如果您正在处理一个特定的文件对象,那么您可以旋转一个终端,实例化它,然后将它传递给
help()
,它将向您显示离曲面最近的任何接口。例如:

>>> f = open('pathtosomefile')
>>> help(f.readline)
Help on built-in function readline:

readline(size=-1, /) method of _io.TextIOWrapper instance
    Read until newline or EOF.

    Returns an empty string if EOF is hit immediately.
x = open('some_file.txt', 'r')
help(x.readline)

该函数可以存在于任意数量的模块(或类)中。这就是模块的全部要点:它们提供了一个可以存在事物的名称空间。您想要的文档取决于您自己的具体需求。你想在上面调用什么呢?可能你想要@wim提到的io.TextIOWrapper.readlineAs,对
open('myfile.txt')
的常规调用的
类型
就是该类的一个实例。注意:
list.extend
不是
模块.method
的一个例子<代码>列表
是内置类型,不是模块。此外,从技术上讲,在模块上直接找到的几乎所有东西都是函数,而不是方法(“方法”是在类上定义的函数,因此可以通过类实例访问;模块上的顶级函数通常不是类的一部分)。