0

我正在阅读 Python 教程,其中演示了以下示例:

>>> 'str'.strip() + 'ing'   #  <-  This is ok

在这个例子中(据我所知)str是一个字符串,函数strip()被调用。

我有理由期望找到该功能正在执行>>> dir("abc")。确实功能被列为 'strip'

问题 1:为什么有些功能列为 ,__name__而另一些列为name

问题 2:我现在想查找有关此功能的更多信息。运行时help("abc")(期望获得可以在字符串上运行的所有函数的手册页),strip未列出。为什么?我在哪里可以找到有关特定功能的更多信息?

问题 3:使用PyCharm我希望以下自动完成功能可以工作,但我什么也没看到。这是为什么?

在此处输入图像描述

4

3 回答 3

4
  1. 被双下划线包围的函数是可以被覆盖以实现特殊行为的特殊函数。例如,该__getitem__函数在一个类中实现时,允许对该类中的项目进行索引访问。(换句话说,a[5]在大多数情况下等价于a.__getitem__(5))。下划线只是表示它们很特殊,需要一些特殊处理。(例如,不要自己发明。)

  2. 当您将字符串传递给 时help,它会将字符串视为查询。例如,help('class')调出一堆关于类的信息。如果您想要help字符串对象的文本,请执行help(str)help('str')

  3. 我不使用 PyCharm,所以我无能为力。

于 2012-06-02T03:12:11.500 回答
1

与其help("abc")在抽象基类上提供帮助,不如尝试help(str)在字符串上提供帮助,包括str.strip方法。

于 2012-06-02T03:13:04.980 回答
0

答案为 3。确保您在设置 |中指定了 Python 解释器。项目口译员

这是我为您的示例得到的信息: 在 PyCharm 中完成

于 2012-06-03T21:52:30.537 回答