Python erkunden
===============
Egal, ob ihr IDLE oder die interaktive Shell nutzt, es gibt einige nützliche
Funktionen, um Python zu erkunden.
.. _help:
``help()``
----------
``help()`` hat zwei verschiedene Modi. Wenn ihr ``help()`` eingebt, ruft ihr das
Hilfesystem auf, mit dem ihr Informationen zu Modulen, Schlüsselwörtern und
weiteren Themen erhalten könnt. Wenn ihr euch im Hilfesystem befindet, seht ihr
mit ``help>`` eine Eingabeaufforderung. Ihr könnt nun einen Modulnamen eingeben,
:abbr:`z.B. (zum Beispiel)` ``float``, um die `Python-Dokumentation
`_ zu diesem Typ zu durchsuchen.
``help()`` ist Teil der :doc:`pydoc `-Bibliothek, die
Zugriff auf die in Python-Bibliotheken integrierte Dokumentation bietet. Da jede
Python-Installation mit einer vollständigen Dokumentation ausgeliefert wird,
habt ihr auch offline die gesamte Dokumentation zur Hand.
Alternativ könnt ihr ``help()`` auch gezielter anwenden, indem ihr einen
Typ- oder Variablennamen als Parameter übergebt, :abbr:`z.B. (zum Beispiel)`:
.. code-block:: python
>>> x = 4.2
>>> help(x)
Help on float object:
class float(object)
| float(x=0, /)
|
| Convert a string or number to a floating point number, if possible.
|
| Methods defined here:
|
| __abs__(self, /)
| abs(self)
...
``dir()``, ``globals()`` und ``locals()``
-----------------------------------------
:py:func:`dir` ist eine weitere nützliche Funktion, die Objekte in einem
bestimmten :doc:`Namensraum ` auflistet. Wenn ihr sie ohne
Parameter verwendet, könnt ihr herausfinden, welche Methoden und Daten lokal
verfügbar sind. Alternativ kann sie auch Objekte für ein Modul oder einen Typ
auflisten.
.. code-block:: python
>>> dir()
['__annotations__', '__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'x']
>>> dir(x)
['__abs__', '__add__', '__bool__', '__ceil__', '__class__', '__delattr__', '__dir__', '__divmod__', '__doc__', '__eq__', '__float__', '__floor__', '__floordiv__', '__format__', '__ge__', '__getattribute__', '__getformat__', '__getnewargs__', '__getstate__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__int__', '__le__', '__lt__', '__mod__', '__mul__', '__ne__', '__neg__', '__new__', '__pos__', '__pow__', '__radd__', '__rdivmod__', '__reduce__', '__reduce_ex__', '__repr__', '__rfloordiv__', '__rmod__', '__rmul__', '__round__', '__rpow__', '__rsub__', '__rtruediv__', '__setattr__', '__sizeof__', '__str__', '__sub__', '__subclasshook__', '__truediv__', '__trunc__', 'as_integer_ratio', 'conjugate', 'fromhex', 'hex', 'imag', 'is_integer', 'real']
Im Gegensatz zu :py:func:`dir` zeigen sowohl :py:func:`globals` als auch
:py:func:`locals` die mit den Objekten verbundenen Werte an. Aktuell geben beide
Funktionen dasselbe zurück:
.. code-block:: python
>>> globals()
{'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': , '__spec__': None, '__annotations__': {}, '__builtins__': , 'x': 4.2}