Python "See help(type(self)) for accurate signature."
Python "See help(type(self)) for accurate signature."
当 help()
ing a class 时,我在许多文档字符串中看到了以下语句:"See help(type(self))
for accurate signature."
值得注意的是,它在 scipy.stats.binom.__init__
的 help()
中,至少在 stockfish.Stockfish.__init__
中。因此,我认为这是某种股票信息。
反正我是搞不懂这到底是什么意思。这是有用的信息吗?请注意,作为 class 的 "outside",可以说,我永远无法访问 self
。此外,如果我无法访问 __init__
方法的签名,则无法实例化 class,因此甚至无法执行 help(type(my_object_instantiated))
。这是一个陷阱 22。为了使用 __init__
,我需要 __init__
的签名,但为了读取 __init__
的签名,我需要用 [=18] 实例化一个对象=].然而,这一点完全是学术性的,因为即使我确实设法实例化了一个 scipy.stats.binom
,它实际上 returns 是一个完全 不同的 class 的对象, rv_frozen
, 在其 __init__
文档字符串中具有完全相同的消息,但其签名完全不同并且完全没有用。也就是说,help(type(self))
其实并没有给出准确的签名。没用。
有谁知道这条消息的来源,或者我应该如何看待它?它只是来自文档生成器的垃圾,还是我的用户错误?
有一个约定,构造class实例的签名放在class上的__doc__
(因为那个是用户调用的)而不是 __init__
(或 __new__
)确定该签名。对于 __init__
无法通过内省发现其签名的扩展类型(用 C 编写)尤其如此。
您看到的消息是 type
class 的一部分(参见 help(type.__init__)
),因此默认情况下由 metaclasses 继承。
在某些版本中,scipy.stats.binom
实际上不是一个类型,因此混淆了问题;它只是另一个 class 的实例(如 type
)是可调用的。所以在上面请求 help
只会为 that class 提供帮助(就像 help(1)
得到你 help(int)
)——你有查看其 __call__
以获取更多信息(如果有)。并根据 调用 的结果请求 help
,正如您所观察到的那样,它可以为您 returns 的实际 class 提供帮助。
当 help()
ing a class 时,我在许多文档字符串中看到了以下语句:"See help(type(self))
for accurate signature."
值得注意的是,它在 scipy.stats.binom.__init__
的 help()
中,至少在 stockfish.Stockfish.__init__
中。因此,我认为这是某种股票信息。
反正我是搞不懂这到底是什么意思。这是有用的信息吗?请注意,作为 class 的 "outside",可以说,我永远无法访问 self
。此外,如果我无法访问 __init__
方法的签名,则无法实例化 class,因此甚至无法执行 help(type(my_object_instantiated))
。这是一个陷阱 22。为了使用 __init__
,我需要 __init__
的签名,但为了读取 __init__
的签名,我需要用 [=18] 实例化一个对象=].然而,这一点完全是学术性的,因为即使我确实设法实例化了一个 scipy.stats.binom
,它实际上 returns 是一个完全 不同的 class 的对象, rv_frozen
, 在其 __init__
文档字符串中具有完全相同的消息,但其签名完全不同并且完全没有用。也就是说,help(type(self))
其实并没有给出准确的签名。没用。
有谁知道这条消息的来源,或者我应该如何看待它?它只是来自文档生成器的垃圾,还是我的用户错误?
有一个约定,构造class实例的签名放在class上的__doc__
(因为那个是用户调用的)而不是 __init__
(或 __new__
)确定该签名。对于 __init__
无法通过内省发现其签名的扩展类型(用 C 编写)尤其如此。
您看到的消息是 type
class 的一部分(参见 help(type.__init__)
),因此默认情况下由 metaclasses 继承。
在某些版本中,scipy.stats.binom
实际上不是一个类型,因此混淆了问题;它只是另一个 class 的实例(如 type
)是可调用的。所以在上面请求 help
只会为 that class 提供帮助(就像 help(1)
得到你 help(int)
)——你有查看其 __call__
以获取更多信息(如果有)。并根据 调用 的结果请求 help
,正如您所观察到的那样,它可以为您 returns 的实际 class 提供帮助。