2016-12-25 8 views
2

help(help) говорит Это обертка вокруг pydoc.help (с завихрением).Что означает «с завихрением», когда help (help) вызывается в Python?

Что такое твист?

$ python 
Python 2.7.10 (default, Jul 30 2016, 19:40:32) 
[GCC 4.2.1 Compatible Apple LLVM 8.0.0 (clang-800.0.34)] on darwin 
Type "help", "copyright", "credits" or "license" for more information. 
>>> help(help) 
Help on _Helper in module site object: 

class _Helper(__builtin__.object) 
| Define the builtin 'help'. 
| This is a wrapper around pydoc.help (with a twist). 
| 
| Methods defined here: 
| 
| __call__(self, *args, **kwds) 
| 
| __repr__(self) 
| 
| ---------------------------------------------------------------------- 
| Data descriptors defined here: 
| 
| __dict__ 
|  dictionary for instance variables (if defined) 
| 
| __weakref__ 
|  list of weak references to the object (if defined) 

ответ

6

Не так много поворота. Закрутка что pydoc является лениво импортирована и объект имеет метод __repr__, который обеспечивает непосредственную обратную связь о том, как использовать объект:

>>> repr(help) 
'Type help() for interactive help, or help(object) for help about object.' 

метод __repr__ вызывается всякий раз, когда вы эхо help объекта в интерактивном режиме :

>>> help 
Type help() for interactive help, or help(object) for help about object. 

Python 3.4 избавился от «твиста» описания в целом, заменив его чем-то немного более описательным; см. issue 9364. Цитирование репортера ошибок:

«(с завихрением)» большое спасибо. Я думаю, что комментарий должен быть удален или объяснен. Справочное руководство должно объяснить, а не дразнить.

с последующим ответом разработчика:

Согласовано. Я думаю, что «твист» заключается в том, что импорт ленив, и эта помощь имеет полезное представление (ничего себе, поговорим об этом!). Эти детали не нужно упоминать, просто удалите комментарий («обертка» - это ИМО, чтобы вызвать любопытство, источник здесь, чтобы найти, что такое упаковка).

строку документации теперь гласит:

class _Helper(object): 
    """Define the builtin 'help'. 

    This is a wrapper around pydoc.help that provides a helpful message 
    when 'help' is typed at the Python interactive prompt. 

    Calling help() at the Python prompt starts an interactive help session. 
    Calling help(thing) prints help for the python object 'thing'. 
    """ 

 Смежные вопросы

  • Нет связанных вопросов^_^