2013-05-03 2 views
1

Где я могу найти документацию для таких классов, как объект или dict? Я хотел бы знать, какие методы у них есть и какие атрибуты. Я нашел большинство вещей в http://docs.python.org/2, но я не смог найти методы и атрибуты для класса объекта.Где я могу найти классы Python?

ответ

5

Для подробного ознакомления посетите online documentation.

pydoc сервер. Это автономная версия документации, а не подробная один, хотя:

$ python -m pydoc -p 5555 

Он запускает сервер pydocs на локальном, и вы можете получить доступ к документации по этой ссылке.

Для быстрого поиска Вы можете использовать dir() он будет возвращать все атрибуты объекта:

>>> dir(object) 
['__class__', '__delattr__', '__doc__', '__format__', '__getattribute__', '__hash__', '__init__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__'] 
>>> dir(dict) 
['__class__', '__cmp__', '__contains__', '__delattr__', '__delitem__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'clear', 'copy', 'fromkeys', 'get', 'has_key', 'items', 'iteritems', 'iterkeys', 'itervalues', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values', 'viewitems', 'viewkeys', 'viewvalues'] 

некоторую информацию об атрибуте использовать help()

>>>help(dict.get) 
get(...) 
    D.get(k[,d]) -> D[k] if k in D, else d. d defaults to None. 

Вы также можете использовать модуль pydoc :

>>> import pydoc 

>>> print pydoc.getdoc(dict) 
dict() -> new empty dictionary 
dict(mapping) -> new dictionary initialized from a mapping object's 
    (key, value) pairs 
dict(iterable) -> new dictionary initialized as if via: 
    d = {} 
    for k, v in iterable: 
     d[k] = v 
dict(**kwargs) -> new dictionary initialized with the name=value pairs 
    in the keyword argument list. For example: dict(one=1, two=2) 

>>> print pydoc.getdoc(dict.get) 
D.get(k[,d]) -> D[k] if k in D, else d. d defaults to None. 
+0

help (help) :-) - – Ant

0
>>> dir({}) 
['__class__', '__cmp__', '__contains__', '__delattr__', '__delitem__', '__doc__',  
'__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', 
'__hash__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__ne__', '__new__', 
'__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__setitem__', '__sizeof__', 
'__str__', '__subclasshook__', 'clear', 'copy', 'fromkeys', 'get', 'has_key', 'items', 
'iteritems', 'iterkeys', 'itervalues', 'keys', 'pop', 'popitem', 'setdefault', 
'update', 
'values', 'viewitems', 'viewkeys', 'viewvalues'] 

Аналогично:

>>> o = object() 
>>> dir(o) 
0

Список метода, попробуйте:

help(object) 

т.е.

help(dict) 
1

Там действительно нет разницы между встроенной в классах или что-нибудь еще , Эти шаги, чтобы узнать больше информации для любого объекта:

Сначала попробуйте help():

>>> help(dict) 
Help on class dict in module __builtin__: 

class dict(object) 
| dict() -> new empty dictionary 
| dict(mapping) -> new dictionary initialized from a mapping object's 
|  (key, value) pairs 
| dict(iterable) -> new dictionary initialized as if via: 
|  d = {} 
|  for k, v in iterable: 
|   d[k] = v 
| dict(**kwargs) -> new dictionary initialized with the name=value pairs 
|  in the keyword argument list. For example: dict(one=1, two=2) 
| 
| Methods defined here: 
| 
| __cmp__(...) 
|  x.__cmp__(y) <==> cmp(x,y) 
... 

Вы также можете получить список атрибутов и методов с dir():

>>> dir(list) 
['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__delslice__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getslice__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__setslice__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort'] 

А ты могут найти большую часть своих данных, посмотрев на __dict__:

>>> sys.__dict__ 
{'setrecursionlimit': <built-in function setrecursionlimit>, 
'dont_write_bytecode': False, 'getrefcount': <built-in function getrefcount>, 
'long_info': sys.long_info(bits_per_digit=15, sizeof_digit=2), 'path_importer_cache': 
{'': None, '/usr/lib/python2.7/encodings': None, 
'/usr/local/lib/python2.7/dist-packages/docutils-0.10-py2.7.egg': None, 
'/usr/lib/python2.7/plat-linux2': None, 
... 

Хотя многие встроенные типы не имеют, или имеют очень мало в нем.

>>> 'foo'.__dict__ 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
AttributeError: 'str' object has no attribute '__dict__' 

И для получения дополнительной информации посетите documentation. Для получения более подробной информации читайте the source code.

+0

Я думаю, что 'pydoc' сервер также является хорошим вариантом. –

+0

Да, я никогда не считал это очень полезным, но это вопрос вкуса, я думаю. –

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