<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="http://mywiki.gedankensilo.de/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="http://mywiki.gedankensilo.de/feed.php">
        <title>MyWiki python</title>
        <description></description>
        <link>http://mywiki.gedankensilo.de/</link>
        <image rdf:resource="http://mywiki.gedankensilo.de/lib/tpl/dokuwiki/images/favicon.ico" />
       <dc:date>2026-07-05T04:49:19+00:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="http://mywiki.gedankensilo.de/doku.php/python/abstract_base_class?rev=1603802946&amp;do=diff"/>
                <rdf:li rdf:resource="http://mywiki.gedankensilo.de/doku.php/python/argument_value_dict?rev=1651515650&amp;do=diff"/>
                <rdf:li rdf:resource="http://mywiki.gedankensilo.de/doku.php/python/call?rev=1603632708&amp;do=diff"/>
                <rdf:li rdf:resource="http://mywiki.gedankensilo.de/doku.php/python/circular_import?rev=1649684610&amp;do=diff"/>
                <rdf:li rdf:resource="http://mywiki.gedankensilo.de/doku.php/python/dataclass?rev=1602440166&amp;do=diff"/>
                <rdf:li rdf:resource="http://mywiki.gedankensilo.de/doku.php/python/decorator?rev=1657874852&amp;do=diff"/>
                <rdf:li rdf:resource="http://mywiki.gedankensilo.de/doku.php/python/deque?rev=1653641671&amp;do=diff"/>
                <rdf:li rdf:resource="http://mywiki.gedankensilo.de/doku.php/python/generator?rev=1583412379&amp;do=diff"/>
                <rdf:li rdf:resource="http://mywiki.gedankensilo.de/doku.php/python/init.py?rev=1603626796&amp;do=diff"/>
                <rdf:li rdf:resource="http://mywiki.gedankensilo.de/doku.php/python/ipython?rev=1659589984&amp;do=diff"/>
                <rdf:li rdf:resource="http://mywiki.gedankensilo.de/doku.php/python/lambda?rev=1583413801&amp;do=diff"/>
                <rdf:li rdf:resource="http://mywiki.gedankensilo.de/doku.php/python/metaclass?rev=1603454101&amp;do=diff"/>
                <rdf:li rdf:resource="http://mywiki.gedankensilo.de/doku.php/python/method-types?rev=1586337555&amp;do=diff"/>
                <rdf:li rdf:resource="http://mywiki.gedankensilo.de/doku.php/python/module?rev=1666444157&amp;do=diff"/>
                <rdf:li rdf:resource="http://mywiki.gedankensilo.de/doku.php/python/mro?rev=1603626715&amp;do=diff"/>
                <rdf:li rdf:resource="http://mywiki.gedankensilo.de/doku.php/python/namedtuples?rev=1582622511&amp;do=diff"/>
                <rdf:li rdf:resource="http://mywiki.gedankensilo.de/doku.php/python/overload_decorator?rev=1657817536&amp;do=diff"/>
                <rdf:li rdf:resource="http://mywiki.gedankensilo.de/doku.php/python/pandas?rev=1747927723&amp;do=diff"/>
                <rdf:li rdf:resource="http://mywiki.gedankensilo.de/doku.php/python/parsy?rev=1620754009&amp;do=diff"/>
                <rdf:li rdf:resource="http://mywiki.gedankensilo.de/doku.php/python/performance?rev=1664211236&amp;do=diff"/>
                <rdf:li rdf:resource="http://mywiki.gedankensilo.de/doku.php/python/pip?rev=1699956533&amp;do=diff"/>
                <rdf:li rdf:resource="http://mywiki.gedankensilo.de/doku.php/python/pipenv?rev=1703783275&amp;do=diff"/>
                <rdf:li rdf:resource="http://mywiki.gedankensilo.de/doku.php/python/psycopg?rev=1688162457&amp;do=diff"/>
                <rdf:li rdf:resource="http://mywiki.gedankensilo.de/doku.php/python/ptpython?rev=1700571656&amp;do=diff"/>
                <rdf:li rdf:resource="http://mywiki.gedankensilo.de/doku.php/python/pytest?rev=1708711489&amp;do=diff"/>
                <rdf:li rdf:resource="http://mywiki.gedankensilo.de/doku.php/python/regex?rev=1603627230&amp;do=diff"/>
                <rdf:li rdf:resource="http://mywiki.gedankensilo.de/doku.php/python/signalhandling?rev=1561710038&amp;do=diff"/>
                <rdf:li rdf:resource="http://mywiki.gedankensilo.de/doku.php/python/singledispatch?rev=1595848477&amp;do=diff"/>
                <rdf:li rdf:resource="http://mywiki.gedankensilo.de/doku.php/python/sockets?rev=1553453733&amp;do=diff"/>
                <rdf:li rdf:resource="http://mywiki.gedankensilo.de/doku.php/python/sorted?rev=1583414897&amp;do=diff"/>
                <rdf:li rdf:resource="http://mywiki.gedankensilo.de/doku.php/python/ternaer_operator?rev=1603628231&amp;do=diff"/>
                <rdf:li rdf:resource="http://mywiki.gedankensilo.de/doku.php/python/tk?rev=1679983129&amp;do=diff"/>
                <rdf:li rdf:resource="http://mywiki.gedankensilo.de/doku.php/python/tuple?rev=1583412257&amp;do=diff"/>
                <rdf:li rdf:resource="http://mywiki.gedankensilo.de/doku.php/python/typing_self_reference?rev=1649684791&amp;do=diff"/>
                <rdf:li rdf:resource="http://mywiki.gedankensilo.de/doku.php/python/unicode?rev=1657873107&amp;do=diff"/>
                <rdf:li rdf:resource="http://mywiki.gedankensilo.de/doku.php/python/unittest?rev=1650378507&amp;do=diff"/>
                <rdf:li rdf:resource="http://mywiki.gedankensilo.de/doku.php/python/verification-tools?rev=1659589335&amp;do=diff"/>
                <rdf:li rdf:resource="http://mywiki.gedankensilo.de/doku.php/python/virtual_base_class?rev=1603653239&amp;do=diff"/>
                <rdf:li rdf:resource="http://mywiki.gedankensilo.de/doku.php/python/xdialog?rev=1686240812&amp;do=diff"/>
                <rdf:li rdf:resource="http://mywiki.gedankensilo.de/doku.php/python/xor?rev=1691406816&amp;do=diff"/>
                <rdf:li rdf:resource="http://mywiki.gedankensilo.de/doku.php/python/zip?rev=1549865892&amp;do=diff"/>
                <rdf:li rdf:resource="http://mywiki.gedankensilo.de/doku.php/python/zugriff_auf_class_members?rev=1649071120&amp;do=diff"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="http://mywiki.gedankensilo.de/lib/tpl/dokuwiki/images/favicon.ico">
        <title>MyWiki</title>
        <link>http://mywiki.gedankensilo.de/</link>
        <url>http://mywiki.gedankensilo.de/lib/tpl/dokuwiki/images/favicon.ico</url>
    </image>
    <item rdf:about="http://mywiki.gedankensilo.de/doku.php/python/abstract_base_class?rev=1603802946&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-10-27T13:49:06+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>python:abstract_base_class</title>
        <link>http://mywiki.gedankensilo.de/doku.php/python/abstract_base_class?rev=1603802946&amp;do=diff</link>
        <description>*  Eine Base-Class ist eine Klasse aus der eine andere Klasse abgeleitet ist
	*  eine Abstract Base Class ist das was in anderen Programmiersprachen ein Interface ist
			*  eine Klasse die Methoden und Attribute definiert, sie aber nicht implementiert</description>
    </item>
    <item rdf:about="http://mywiki.gedankensilo.de/doku.php/python/argument_value_dict?rev=1651515650&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-05-02T20:20:50+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>python:argument_value_dict</title>
        <link>http://mywiki.gedankensilo.de/doku.php/python/argument_value_dict?rev=1651515650&amp;do=diff</link>
        <description>*  Bekomme die Argumente und Werte eines Funktionsaufrufs als dict



Ruft man obiges aus bekommt man:</description>
    </item>
    <item rdf:about="http://mywiki.gedankensilo.de/doku.php/python/call?rev=1603632708&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-10-25T14:31:48+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>python:call</title>
        <link>http://mywiki.gedankensilo.de/doku.php/python/call?rev=1603632708&amp;do=diff</link>
        <description>*  Methode die aufgerufen wird wenn ein Objekt als Methode aufgerufen wird



Der Aufruf von „a()“ gibt dann „Hallo“ aus. 


Das Objekt wird als Methode/Funktion aufgerufen.</description>
    </item>
    <item rdf:about="http://mywiki.gedankensilo.de/doku.php/python/circular_import?rev=1649684610&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-04-11T15:43:30+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>python:circular_import</title>
        <link>http://mywiki.gedankensilo.de/doku.php/python/circular_import?rev=1649684610&amp;do=diff</link>
        <description>*  Import-Error wegen eines circular Imports

Für gewöhnlich bekommt man diese Meldung:



	*  der Parser lädt Modul A
	*  in A verweist Objekt A.1 auf ein Objekt B.1
	*  B.1 ist in Modul B definiert
	*  B.1. verweist auf ein Objekt A.2
	*  A.2 ist in Modul A definiert</description>
    </item>
    <item rdf:about="http://mywiki.gedankensilo.de/doku.php/python/dataclass?rev=1602440166&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-10-11T20:16:06+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>python:dataclass</title>
        <link>http://mywiki.gedankensilo.de/doku.php/python/dataclass?rev=1602440166&amp;do=diff</link>
        <description>Class Attributes

	*  wird automatisch erkannt 
	*  entweder gar kein Typing angeben
	*  oder ClassVar als Typ angeben</description>
    </item>
    <item rdf:about="http://mywiki.gedankensilo.de/doku.php/python/decorator?rev=1657874852&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-07-15T10:47:32+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>python:decorator</title>
        <link>http://mywiki.gedankensilo.de/doku.php/python/decorator?rev=1657874852&amp;do=diff</link>
        <description>*  kapselt eine vorhandene Funktion in einer anderen Funktion
			*  dabei übernimmt die kapselnde Funktion den Namen der gekapselten Funktion


Parametrisierter Dekorator

	*  beim Aufrufen von Dekoratoren wird in der folgenden Reihenfolge aufgerufen</description>
    </item>
    <item rdf:about="http://mywiki.gedankensilo.de/doku.php/python/deque?rev=1653641671&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-05-27T10:54:31+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>python:deque</title>
        <link>http://mywiki.gedankensilo.de/doku.php/python/deque?rev=1653641671&amp;do=diff</link>
        <description>Double Linked List 


Statt eines großen Speicherebereichs in dem sich die Pointer auf die Elemente/Objekte hintereinander befinden (so wie das List macht) wird eine Kette benutzt und die Speicherbereiche der Pointer können irgendwo im Speicher liegen.</description>
    </item>
    <item rdf:about="http://mywiki.gedankensilo.de/doku.php/python/generator?rev=1583412379&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-03-05T13:46:19+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>python:generator</title>
        <link>http://mywiki.gedankensilo.de/doku.php/python/generator?rev=1583412379&amp;do=diff</link>
        <description>*  Im Gegensatz zu einem Iterator der bestehende Daten durchläuft (eine Liste, ein dict), erzeugt der Generator erst bei jedem Aufruf (__next__-Methode) den nächsten Datensatz
	*  kann auch wie ein Iterator angesprochen werden (hat __iter__-Methode)</description>
    </item>
    <item rdf:about="http://mywiki.gedankensilo.de/doku.php/python/init.py?rev=1603626796&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-10-25T12:53:16+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>python:init.py</title>
        <link>http://mywiki.gedankensilo.de/doku.php/python/init.py?rev=1603626796&amp;do=diff</link>
        <description>*  ___init__.py
	*  War in älteren Python-Versionen notwendig damit ein Verzeichnis als Paket erkannt wurde
	*  erlaubt Dinge für das Paket zu konfigurieren

__all__

	*  __all__ ist eine magische Variable
	*  Type: list
	*  Repräsentation aller</description>
    </item>
    <item rdf:about="http://mywiki.gedankensilo.de/doku.php/python/ipython?rev=1659589984&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-08-04T07:13:04+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>python:ipython</title>
        <link>http://mywiki.gedankensilo.de/doku.php/python/ipython?rev=1659589984&amp;do=diff</link>
        <description>Troubleshooting
Problem Lösung Ipython mit einer anderen Version als der Hauptversion von Python nutzenFür gewöhnlich verweist IPythonX (2 oder 3) auf die in der jeweiligen Version der Distribution per Default installierten Python-Version. 

Um es mit einer anderen Python-Version zu nutzen:</description>
    </item>
    <item rdf:about="http://mywiki.gedankensilo.de/doku.php/python/lambda?rev=1583413801&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-03-05T14:10:01+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>python:lambda</title>
        <link>http://mywiki.gedankensilo.de/doku.php/python/lambda?rev=1583413801&amp;do=diff</link>
        <description>*  Instant-Anonyme-Funktion
			*  eine Funktion die keinen Namen hat
			*  eine Funktion die nur einmal genutzt wird
					*  an dem Ort wo sie auch definiert wird


	*  kann nur ein Statement enthalten
			*  keine Expressions
					*  also kein if, for usw.</description>
    </item>
    <item rdf:about="http://mywiki.gedankensilo.de/doku.php/python/metaclass?rev=1603454101&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-10-23T13:55:01+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>python:metaclass</title>
        <link>http://mywiki.gedankensilo.de/doku.php/python/metaclass?rev=1603454101&amp;do=diff</link>
        <description>*  Metaclasses sind Factories die Klassen erstellen
			*  also Klassen die Klassen erstellen

	*  wenn eine Klasse erstellt wird und keine Metaklasse angegeben wird, wird „type“ als Metaklasse genutzt
			*  deswegen sind die meisten Klassen vom Typ</description>
    </item>
    <item rdf:about="http://mywiki.gedankensilo.de/doku.php/python/method-types?rev=1586337555&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-04-08T11:19:15+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>python:method-types</title>
        <link>http://mywiki.gedankensilo.de/doku.php/python/method-types?rev=1586337555&amp;do=diff</link>
        <description>*  Python 3 kennt mehrer Arten von Methoden 
			*  die verschiedenen Arten enstehen durch Nutzung unterschiedlicher Dekoratoren

	*  jede Klasse ist selbst ein Objekt in Python
	*  jede Methode ist ein eigenes Objekt in Python

Objekt-Methoden

	*  Können nur nach Instanzierung angesprochen werden</description>
    </item>
    <item rdf:about="http://mywiki.gedankensilo.de/doku.php/python/module?rev=1666444157&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-10-22T15:09:17+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>python:module</title>
        <link>http://mywiki.gedankensilo.de/doku.php/python/module?rev=1666444157&amp;do=diff</link>
        <description>*  in anderen Sprachen würde sie man Bibliotheken oder Libraries nennen
	*  jede Python-Datei ist im Prinzip gleichzeitig ein Modul

Besonderheiten

Ausführung beim Import

	*  beim Import eines Moduls wird der Code im Modul ausgeführt
			*  daher kann man sowas machen:</description>
    </item>
    <item rdf:about="http://mywiki.gedankensilo.de/doku.php/python/mro?rev=1603626715&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-10-25T12:51:55+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>python:mro</title>
        <link>http://mywiki.gedankensilo.de/doku.php/python/mro?rev=1603626715&amp;do=diff</link>
        <description>*  __mro__ -&gt; Method-Resolution-Order
	*  Variable in Klassen die definiert in welcher Reihenfolge (in welchen Klassen) nach einer Methode gesucht wirdt
			*  Klassen können Methoden aus anderen Klassen erben
			*  wird in der Klasse die Methode nicht implementiert wird entlang von den Klassen in</description>
    </item>
    <item rdf:about="http://mywiki.gedankensilo.de/doku.php/python/namedtuples?rev=1582622511&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-02-25T10:21:51+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>python:namedtuples</title>
        <link>http://mywiki.gedankensilo.de/doku.php/python/namedtuples?rev=1582622511&amp;do=diff</link>
        <description>*  Paket collections
	*  Die einzelnen Elemente lassen sich über ihren Namen ansprechen
	*  generiert eine Art Template aus dem sich nach dem gleichen Schema immer neue namedTuples erstellen lassen

Erstellen

	*  namedtuple ist eine Factory-Methode die</description>
    </item>
    <item rdf:about="http://mywiki.gedankensilo.de/doku.php/python/overload_decorator?rev=1657817536&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-07-14T18:52:16+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>python:overload_decorator</title>
        <link>http://mywiki.gedankensilo.de/doku.php/python/overload_decorator?rev=1657817536&amp;do=diff</link>
        <description>*  Teil der typing-Library
	*  ermöglicht es anzugeben welche Parameter-Kombinationen möglich sind, in dem die Funktionsdeklaration mehrfach angeben werden kann mit verschiedenen Parametern
	*  ermöglicht es **kwargs in der eigentlichen Methoden zu nutzen, aber trotzdem mögliche Parameter zu listen, inkl. Typ</description>
    </item>
    <item rdf:about="http://mywiki.gedankensilo.de/doku.php/python/pandas?rev=1747927723&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-05-22T17:28:43+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>python:pandas</title>
        <link>http://mywiki.gedankensilo.de/doku.php/python/pandas?rev=1747927723&amp;do=diff</link>
        <description>Datentypen

	*  Scalar -&gt; im Prinzip ein einzelner Datenpunkt/Wert
	*  Series -&gt; eine Spalte (eine Ansammlung von Scalaren)
	*  DataFrame -&gt; eine Tabelle (eine Ansammlung von Scalaren)

Funktionen anwenden

Die im folgenden beschriebenen Funktionen, sind Funktionen von DataFrame, werden also immer als Funktionen eines konkreten DataFrame-Objektes aufgerufen.</description>
    </item>
    <item rdf:about="http://mywiki.gedankensilo.de/doku.php/python/parsy?rev=1620754009&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-05-11T19:26:49+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>python:parsy</title>
        <link>http://mywiki.gedankensilo.de/doku.php/python/parsy?rev=1620754009&amp;do=diff</link>
        <description>Allgemein

	*  Parsing-Library
	*  für einfachere Parses benutzbar

Vorteile

	*  komplett in Python geschrieben
	*  sehr klein
	*  „schnell“ zu verstehen

Nachteile

	*  Bei Fehlermeldungen ist per Default nicht ersichtlich welcher Subparser eigentlich fehlgeschlagen</description>
    </item>
    <item rdf:about="http://mywiki.gedankensilo.de/doku.php/python/performance?rev=1664211236&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-09-26T18:53:56+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>python:performance</title>
        <link>http://mywiki.gedankensilo.de/doku.php/python/performance?rev=1664211236&amp;do=diff</link>
        <description>CPython optimierte Ausführung

	*  CPython kennt einen optimierten Modus
			*  die entstehenden kompilierten Dateien heißen nicht .pyc, sondern pyo

	*  
python3 -o

			*  deaktiviert asserts (werden nicht mit kompiliert)
			*  spart entsprechend (abhängig von der Anzahl) Zeit bei der Ausführung</description>
    </item>
    <item rdf:about="http://mywiki.gedankensilo.de/doku.php/python/pip?rev=1699956533&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-11-14T11:08:53+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>python:pip</title>
        <link>http://mywiki.gedankensilo.de/doku.php/python/pip?rev=1699956533&amp;do=diff</link>
        <description>HowTo

Upgrade to latest version of package

Grundsätzlich:


python3 -m pip install &lt;package&gt;


Kompatibel ist eine Version wenn sie &gt;= X.* ist. 
Das heißt ist die Major-Version (erste Ziffer vor dem ersten Punkt) die gleiche wie oder größer als die im Remote-Repository wird kein Update durchgeführt.</description>
    </item>
    <item rdf:about="http://mywiki.gedankensilo.de/doku.php/python/pipenv?rev=1703783275&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-12-28T18:07:55+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>python:pipenv</title>
        <link>http://mywiki.gedankensilo.de/doku.php/python/pipenv?rev=1703783275&amp;do=diff</link>
        <description>Dient der Verwaltung virtueller Python-Environments und dient innerhalb dieser zur Verwaltung der Pakete und Auflösung von Abhängigkeiten.

	*  Virtuelle Umgebungen erlauben es innerhalb der Umgebung eine festgelegte Python-Version
	*  und definierte Versionen (unabhängig von der systemweiten Python-Installation) zu haben</description>
    </item>
    <item rdf:about="http://mywiki.gedankensilo.de/doku.php/python/psycopg?rev=1688162457&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-07-01T00:00:57+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>python:psycopg</title>
        <link>http://mywiki.gedankensilo.de/doku.php/python/psycopg?rev=1688162457&amp;do=diff</link>
        <description>*  Postgres-Datenbank-Treiber für Python

Transaction-Handling

	*  jede Aktion in der Datenbank (jedes aufrufen von cursor.execute()) erzeugt eine Transaktion (wenn nicht eine offene besteht)
	*  per Default ist autocommit=False für Datenbankverbindungen</description>
    </item>
    <item rdf:about="http://mywiki.gedankensilo.de/doku.php/python/ptpython?rev=1700571656&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-11-21T14:00:56+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>python:ptpython</title>
        <link>http://mywiki.gedankensilo.de/doku.php/python/ptpython?rev=1700571656&amp;do=diff</link>
        <description>*  REPL -&gt; ähnlich dem was iPython, bpython, python macht
			*  interaktiver Command-Line-Interpreter für Python


Vorteile:

	*  vi- oder emacs-Keybindings unterstützt
	*  man kann sich rückwärts im Terminal bewegen
			*  d.h. mann kann eingegebenes Blockweise noch mal aufrufen</description>
    </item>
    <item rdf:about="http://mywiki.gedankensilo.de/doku.php/python/pytest?rev=1708711489&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-02-23T19:04:49+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>python:pytest</title>
        <link>http://mywiki.gedankensilo.de/doku.php/python/pytest?rev=1708711489&amp;do=diff</link>
        <description>*  Tests können in Klassen zusammengefasst werden
			*  müssen Test&lt;Whatever&gt; heißen
			*  Testmethoden heißen test_&lt;Whatever&gt;
			*  diese haben kein init
			*  Gemeinsame Variablen können nur als Klassenvariablen deklariert werden
			*  jeder ausgührte Test hat eine eigene Instanz der Klasse</description>
    </item>
    <item rdf:about="http://mywiki.gedankensilo.de/doku.php/python/regex?rev=1603627230&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-10-25T13:00:30+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>python:regex</title>
        <link>http://mywiki.gedankensilo.de/doku.php/python/regex?rev=1603627230&amp;do=diff</link>
        <description>*  Regular-Expression-Bibliothek für Python
	*  etwas erweitert Version der re-Bibliothek

match

	*  match vergleicht den regulären Ausdruck mit dem String beginnend am Anfang des Strings
			*  stimmen der reguläre Ausdruck und der zu vergleichende String am Beginn des Strings nicht überein gibt es kein match</description>
    </item>
    <item rdf:about="http://mywiki.gedankensilo.de/doku.php/python/signalhandling?rev=1561710038&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-06-28T10:20:38+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>python:signalhandling</title>
        <link>http://mywiki.gedankensilo.de/doku.php/python/signalhandling?rev=1561710038&amp;do=diff</link>
        <description>*  Es gibt prinzipiell 2 verschiedene Ansätze
			*  Handling direkt des Signals
			*  Exception catchen


	*  u.a. kann das genutzt werden um KeyboardInterrupt (SIGINT) abzufangen

Exceptions

	*  die meisten Signale führen (wenn nicht umgebogen) zu einer Exception</description>
    </item>
    <item rdf:about="http://mywiki.gedankensilo.de/doku.php/python/singledispatch?rev=1595848477&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-07-27T13:14:37+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>python:singledispatch</title>
        <link>http://mywiki.gedankensilo.de/doku.php/python/singledispatch?rev=1595848477&amp;do=diff</link>
        <description>*  Python kann kein Methoden-Overloading
			*  also eine Methode kann nicht mehrfach implementiert sein und anhand unterschiedlicher übergebener Parameter die passende Implementation gewählt werden
			*  es ist nur überschreiben implementiert -&gt; eine Klasse erbt von einer anderen und implementiert eine Methode die in der Eltern-Klasse schon implementiert war noch mal selbst</description>
    </item>
    <item rdf:about="http://mywiki.gedankensilo.de/doku.php/python/sockets?rev=1553453733&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-03-24T19:55:33+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>python:sockets</title>
        <link>http://mywiki.gedankensilo.de/doku.php/python/sockets?rev=1553453733&amp;do=diff</link>
        <description>Clientverbindung

	*  Sind 2-Wege-Verbindungen (es kann sowohl empfangen, als auch gesendet werden

Folgende Methodenaufrufe sind notwendig (es können aber je nach Szenario mehr werden):

	*  import socket
	*  soc = socket.socket(Typ, Protokoll) - Erstellt einen Socket und speichert ihn als soc</description>
    </item>
    <item rdf:about="http://mywiki.gedankensilo.de/doku.php/python/sorted?rev=1583414897&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-03-05T14:28:17+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>python:sorted</title>
        <link>http://mywiki.gedankensilo.de/doku.php/python/sorted?rev=1583414897&amp;do=diff</link>
        <description>*  Builtin-Funktion zum sortieren beliebiger Iterateables (tuple, namedtuple, list, dict)
	*  man kann optional definieren nach welchen Kriterien die Einträge sortiert werden sollen (zum Beispiel bei list, dict, tuple nach einem bestimmten Index, bei namebdtuples, Objekten nach einem Attribut usw.)</description>
    </item>
    <item rdf:about="http://mywiki.gedankensilo.de/doku.php/python/ternaer_operator?rev=1603628231&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-10-25T13:17:11+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>python:ternaer_operator</title>
        <link>http://mywiki.gedankensilo.de/doku.php/python/ternaer_operator?rev=1603628231&amp;do=diff</link>
        <description>*  Macht im Prinzip was eine if-else-Anweisung macht
			*  macht es aber auf einer Zeile
			*  erlaubt nur ein Statement für das Ergebnis von if und eins für else -&gt; also keine komplexeren Sachen mit mehreren Statements




Obige Anweisung prüft weißt a den Inhalt von parameter1 zu (das macht der erste parameter1) (der zum Beispiel ein Parameter einer Funktion ist) wenn die Variable parameter1 nicht den Wert None hat, ansonsten weißt sie a 15 zu.</description>
    </item>
    <item rdf:about="http://mywiki.gedankensilo.de/doku.php/python/tk?rev=1679983129&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-03-28T07:58:49+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>python:tk</title>
        <link>http://mywiki.gedankensilo.de/doku.php/python/tk?rev=1679983129&amp;do=diff</link>
        <description>*  TK = Oberflächen-Bibliothek von TCL (Scriptsprache)
	*  hat Bindings zu verschiedenen anderen Sprachen
			*  TKinter ist die für Python
					*  technisch setzen alle Aufrufe TCL-Befehle ab die dann die GUI „malen“


	*  schnell zu erlennen</description>
    </item>
    <item rdf:about="http://mywiki.gedankensilo.de/doku.php/python/tuple?rev=1583412257&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-03-05T13:44:17+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>python:tuple</title>
        <link>http://mywiki.gedankensilo.de/doku.php/python/tuple?rev=1583412257&amp;do=diff</link>
        <description>Tuple-Comprehension

	*  Im Gegensatz zu List-Comprehension und Dict-Comprehension gibt es keine Tuple-Comprehension
			*  Grund ist, die Syntax ist schon für Generatoren belegt

	*  aber Comprehensions sind im Prinzip nur Generatoren



Oben stehende Syntax nutzt einen Generator und schreibt das Ergebnis in ein Tuple</description>
    </item>
    <item rdf:about="http://mywiki.gedankensilo.de/doku.php/python/typing_self_reference?rev=1649684791&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-04-11T15:46:31+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>python:typing_self_reference</title>
        <link>http://mywiki.gedankensilo.de/doku.php/python/typing_self_reference?rev=1649684791&amp;do=diff</link>
        <description>*  nur für Python &lt; 3.10 (ab da ist es Standard-Verhalten)
	*  Ein Klasse gibt für einen Parameter oder einen Rückgabewert sich selbst als Typ an
	*  das resultiert in 
 NameError: name 'xyz' is not defined

	*  Grund: Der Typ existiert zum Zeitpunkt des parsens der Type-Hints noch nicht</description>
    </item>
    <item rdf:about="http://mywiki.gedankensilo.de/doku.php/python/unicode?rev=1657873107&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-07-15T10:18:27+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>python:unicode</title>
        <link>http://mywiki.gedankensilo.de/doku.php/python/unicode?rev=1657873107&amp;do=diff</link>
        <description>*  Python benutzt ab Version 3 nur noch Unicode-Strings

Unicode-Code-Points können wie folgt in Strings eingefügt werden:


	*  obiges fügt ein Copyright-Zeichen am Ende ein
	*  \u&lt;Unicode-Codepoint&gt; ist die Syntax

Man kann auch den Unicode-Namen des Zeichens nutzen:</description>
    </item>
    <item rdf:about="http://mywiki.gedankensilo.de/doku.php/python/unittest?rev=1650378507&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-04-19T16:28:27+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>python:unittest</title>
        <link>http://mywiki.gedankensilo.de/doku.php/python/unittest?rev=1650378507&amp;do=diff</link>
        <description>Abdeckung feststellen

	*  Coverage -&gt; Tool um festzustellen wie viel Prozent des Codes ausgeführt wurden
			*  wenn man das in Kombination mit Unittests laufen lässt kann man sehen welche Teile nicht getestet werden</description>
    </item>
    <item rdf:about="http://mywiki.gedankensilo.de/doku.php/python/verification-tools?rev=1659589335&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-08-04T07:02:15+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>python:verification-tools</title>
        <link>http://mywiki.gedankensilo.de/doku.php/python/verification-tools?rev=1659589335&amp;do=diff</link>
        <description>Im Prinzip gibt 2 grundsätzliche Arten von Tools:

	*  Verifier
			*  suchen nach formalen Fehlern im Code (z.B. Verstoß gegen PEP8)
			*  suchen nach Logikfehlern im Code

	*  Auto-Formatters
			*  im Prinzip Verifiers die gleichzeitig den Code entsprechend umformatieren</description>
    </item>
    <item rdf:about="http://mywiki.gedankensilo.de/doku.php/python/virtual_base_class?rev=1603653239&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-10-25T20:13:59+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>python:virtual_base_class</title>
        <link>http://mywiki.gedankensilo.de/doku.php/python/virtual_base_class?rev=1603653239&amp;do=diff</link>
        <description>*  eine Base-Class ist eine Klasse aus der eine andere abgeleitet ist
	*  eine virtual Base Class ensteht wenn eine Klasse ein Interface implementiert, aber nicht direkt von der Klasse erbt die das Interface definiert hat
			*  issubclass gibt dann trotzdem True zurück</description>
    </item>
    <item rdf:about="http://mywiki.gedankensilo.de/doku.php/python/xdialog?rev=1686240812&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-06-08T18:13:32+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>python:xdialog</title>
        <link>http://mywiki.gedankensilo.de/doku.php/python/xdialog?rev=1686240812&amp;do=diff</link>
        <description>*  pip3 install xdialog
	*  Einfache Möglichkeit (ein Methodenaufruf) um graphische Dialoge darzustellen
			*  ähnlich xdialog in der Shell unter Linux

	*  Plattformübergreifend (nutzt verschiedene betriebssystemeigene Wege um die Dialoge zu realisieren)</description>
    </item>
    <item rdf:about="http://mywiki.gedankensilo.de/doku.php/python/xor?rev=1691406816&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-08-07T13:13:36+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>python:xor</title>
        <link>http://mywiki.gedankensilo.de/doku.php/python/xor?rev=1691406816&amp;do=diff</link>
        <description>XOR -&gt; „entweder oder“ 


Im Gegensatz zu „or“ welches True zurückgibt wenn mindestens a oder b wahr oder beide sind, soll „xor“ nur True zurückliefern wenn entweder a oder b Wahr sind, also nicht wenn beide wahr sind.



	*  durch die Konvertierung zu bool kann nur noch eins wahr sein, damit der Gesamtausdruck True zurückliefert</description>
    </item>
    <item rdf:about="http://mywiki.gedankensilo.de/doku.php/python/zip?rev=1549865892&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-02-11T07:18:12+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>python:zip</title>
        <link>http://mywiki.gedankensilo.de/doku.php/python/zip?rev=1549865892&amp;do=diff</link>
        <description>*  Iterator der jeweils das x-te Element von mehreren Iterateables zurückgibt
	*  ermöglicht das parallele durchlaufen mehrerer Objekte in einem Schleifendurchlauf
	*  die Anzahl durchlaufener Objekte ist auf die Länge des kürzesten Iterables begrenzt</description>
    </item>
    <item rdf:about="http://mywiki.gedankensilo.de/doku.php/python/zugriff_auf_class_members?rev=1649071120&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-04-04T13:18:40+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>python:zugriff_auf_class_members</title>
        <link>http://mywiki.gedankensilo.de/doku.php/python/zugriff_auf_class_members?rev=1649071120&amp;do=diff</link>
        <description>Es gibt einige unterschiedliche Wege innerhalb einer Klasse auf Klassenattribute zuzugreifen, die sich teilweise in bestimmten Situationen verschieden verhalten.

Klassenmethode



	*  Der Aufruf von „base.ausgabe“ gibt 5 aus.
	*  Der Aufruf von</description>
    </item>
</rdf:RDF>
