Sehen Sie sich die in Python integrierte Ausnahmebaumstruktur an

Einführung

Bei der Implementierung einer benutzerdefinierten Ausnahme für mein Modul war ich daran interessiert, wie sich die Baumstruktur der integrierten Ausnahmen zwischen Python 2 und 3 unterscheidet. Deshalb habe ich mich entschlossen, den Unterschied in der Baumstruktur jeder Version zu untersuchen.

Zusammenfassend wurde festgestellt, dass "die Baumstruktur von Ausnahmen je nach Version auch im 3. System sehr unterschiedlich ist, nicht in erster Linie die Unterscheidung zwischen dem 2. System und dem 3. System". Bitte beachten Sie, dass unerwartete Probleme auftreten können, wenn Sie der Meinung sind, dass die Baumstruktur der Ausnahmen in 3 Serien dieselbe ist.

Für diese Umfrage verwendeter Code

print_exc_tree.py


#!/usr/bin/env python

from __future__ import print_function
import platform


def classtree(cls, depth=0):
    if depth == 0:
        prefix = ''
    else:
        prefix = '.' * (depth * 3) + ' '
    if cls.__name__.lower() == 'error':
        print('{0}{1} ({2})'.format(prefix, cls.__name__, cls))
    else:
        print('{0}{1}'.format(prefix, cls.__name__))
    for subcls in sorted(cls.__subclasses__(), key=lambda c: c.__name__):
        classtree(subcls, depth+1)


if __name__ == '__main__':
    print('Python Version: {0}'.format(platform.python_version()))
    print()
    classtree(BaseException)

2.7.12 V.S. 3.5.2

Vergleichen Sie die letzten beiden zum Zeitpunkt des Schreibens. Grundsätzlich sollte es in Ordnung sein, wenn Sie diesen Unterschied in der Baumstruktur kennen.

$ pyenv shell 2.7.12
$ python print_exc_tree.py
Python Version: 2.7.12

BaseException
... Exception
...... Error (<class 'locale.Error'>)
...... StandardError
......... ArithmeticError
............ FloatingPointError
............ OverflowError
............ ZeroDivisionError
......... AssertionError
......... AttributeError
......... BufferError
......... EOFError
......... EnvironmentError
............ IOError
............... ItimerError
............ OSError
......... ImportError
............ ZipImportError
......... LookupError
............ CodecRegistryError
............ IndexError
............ KeyError
......... MemoryError
......... NameError
............ UnboundLocalError
......... ReferenceError
......... RuntimeError
............ NotImplementedError
......... SyntaxError
............ IndentationError
............... TabError
......... SystemError
............ CodecRegistryError
......... TypeError
......... ValueError
............ UnicodeError
............... UnicodeDecodeError
............... UnicodeEncodeError
............... UnicodeTranslateError
...... StopIteration
...... Warning
......... BytesWarning
......... DeprecationWarning
......... FutureWarning
......... ImportWarning
......... PendingDeprecationWarning
......... RuntimeWarning
......... SyntaxWarning
......... UnicodeWarning
......... UserWarning
...... _OptionError
...... error (<class 'sre_constants.error'>)
... GeneratorExit
... KeyboardInterrupt
... SystemExit
$ pyenv shell 3.5.2
$ python print_exc_tree.py
Python Version: 3.5.2

BaseException
... Exception
...... ArithmeticError
......... FloatingPointError
......... OverflowError
......... ZeroDivisionError
...... AssertionError
...... AttributeError
...... BufferError
...... EOFError
...... Error (<class 'locale.Error'>)
...... ImportError
......... ZipImportError
...... LookupError
......... CodecRegistryError
......... IndexError
......... KeyError
...... MemoryError
...... NameError
......... UnboundLocalError
...... OSError
......... BlockingIOError
......... ChildProcessError
......... ConnectionError
............ BrokenPipeError
............ ConnectionAbortedError
............ ConnectionRefusedError
............ ConnectionResetError
......... FileExistsError
......... FileNotFoundError
......... InterruptedError
......... IsADirectoryError
......... ItimerError
......... NotADirectoryError
......... PermissionError
......... ProcessLookupError
......... TimeoutError
......... UnsupportedOperation
...... ReferenceError
...... RuntimeError
......... BrokenBarrierError
......... NotImplementedError
......... RecursionError
......... _DeadlockError
...... StopAsyncIteration
...... StopIteration
...... StopTokenizing
...... SubprocessError
......... CalledProcessError
......... TimeoutExpired
...... SyntaxError
......... IndentationError
............ TabError
...... SystemError
......... CodecRegistryError
...... TokenError
...... TypeError
...... ValueError
......... UnicodeError
............ UnicodeDecodeError
............ UnicodeEncodeError
............ UnicodeTranslateError
......... UnsupportedOperation
...... Warning
......... BytesWarning
......... DeprecationWarning
......... FutureWarning
......... ImportWarning
......... PendingDeprecationWarning
......... ResourceWarning
......... RuntimeWarning
......... SyntaxWarning
......... UnicodeWarning
......... UserWarning
...... _OptionError
...... error (<class 'sre_constants.error'>)
... GeneratorExit
... KeyboardInterrupt
... SystemExit

Ich mache mir ein wenig Sorgen um sre_constants.error, aber dies scheint verwendet zu werden, wenn der reguläre Ausdruck mehrdeutig ist (Referenz).

Python 3.5.2 (default, Jul 29 2016, 11:13:25)
[GCC 4.2.1 Compatible Apple LLVM 7.3.0 (clang-703.0.31)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import re
>>> re.compile("*kittens*")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/dmiyakawa/.pyenv/versions/3.5.2/lib/python3.5/re.py", line 224, in compile
    return _compile(pattern, flags)
  File "/Users/dmiyakawa/.pyenv/versions/3.5.2/lib/python3.5/re.py", line 293, in _compile
    p = sre_compile.compile(pattern, flags)
  File "/Users/dmiyakawa/.pyenv/versions/3.5.2/lib/python3.5/sre_compile.py", line 536, in compile
    p = sre_parse.parse(p, flags)
  File "/Users/dmiyakawa/.pyenv/versions/3.5.2/lib/python3.5/sre_parse.py", line 829, in parse
    p = _parse_sub(source, pattern, 0)
  File "/Users/dmiyakawa/.pyenv/versions/3.5.2/lib/python3.5/sre_parse.py", line 437, in _parse_sub
    itemsappend(_parse(source, state))
  File "/Users/dmiyakawa/.pyenv/versions/3.5.2/lib/python3.5/sre_parse.py", line 638, in _parse
    source.tell() - here + len(this))
sre_constants.error: nothing to repeat at position 0

Altes Python 3-Ausnahmesystem

Wenn Sie nachforschen, können Sie feststellen, dass sich diese Baumstruktur je nach Version auch im 3. System erheblich geändert hat. Es mag etwas redundant erscheinen, aber schauen wir uns nacheinander 3.0, 3.1, 3.2, 3.3, 3.4 an.

$ pyenv shell 3.0.1
$ python print_exc_tree.py
Python Version: 3.0.1

BaseException
... Exception
...... ArithmeticError
......... FloatingPointError
......... OverflowError
......... ZeroDivisionError
...... AssertionError
...... AttributeError
...... BufferError
...... EOFError
...... EnvironmentError
......... IOError
............ BlockingIOError
............ ItimerError
............ UnsupportedOperation
......... OSError
...... ImportError
......... ZipImportError
...... LookupError
......... CodecRegistryError
......... IndexError
......... KeyError
...... MemoryError
...... NameError
......... UnboundLocalError
...... ReferenceError
...... RuntimeError
......... NotImplementedError
...... StopIteration
...... SyntaxError
......... IndentationError
............ TabError
...... SystemError
......... CodecRegistryError
...... TypeError
...... ValueError
......... UnicodeError
............ UnicodeDecodeError
............ UnicodeEncodeError
............ UnicodeTranslateError
......... UnsupportedOperation
...... Warning
......... BytesWarning
......... DeprecationWarning
......... FutureWarning
......... ImportWarning
......... PendingDeprecationWarning
......... RuntimeWarning
......... SyntaxWarning
......... UnicodeWarning
......... UserWarning
...... error (<class '_thread.error'>)
...... error (<class 'sre_constants.error'>)
... GeneratorExit
... KeyboardInterrupt
... SystemExit
$ pyenv shell 3.1.5
$ python print_exc_tree.py
Python Version: 3.1.5

BaseException
... Exception
...... ArithmeticError
......... FloatingPointError
......... OverflowError
......... ZeroDivisionError
...... AssertionError
...... AttributeError
...... BufferError
...... EOFError
...... EnvironmentError
......... IOError
............ BlockingIOError
............ ItimerError
............ UnsupportedOperation
......... OSError
...... Error (<class 'locale.Error'>)
...... ImportError
......... ZipImportError
...... LookupError
......... CodecRegistryError
......... IndexError
......... KeyError
...... MemoryError
...... NameError
......... UnboundLocalError
...... ReferenceError
...... RuntimeError
......... NotImplementedError
...... StopIteration
...... StopTokenizing
...... SyntaxError
......... IndentationError
............ TabError
...... SystemError
......... CodecRegistryError
...... TokenError
...... TypeError
...... ValueError
......... UnicodeError
............ UnicodeDecodeError
............ UnicodeEncodeError
............ UnicodeTranslateError
......... UnsupportedOperation
...... Warning
......... BytesWarning
......... DeprecationWarning
......... FutureWarning
......... ImportWarning
......... PendingDeprecationWarning
......... RuntimeWarning
......... SyntaxWarning
......... UnicodeWarning
......... UserWarning
...... error (<class 'sre_constants.error'>)
... GeneratorExit
... KeyboardInterrupt
... SystemExit
$ pyenv shell 3.2.6
$ python print_exc_tree.py
Python Version: 3.2.6

BaseException
... Exception
...... ArithmeticError
......... FloatingPointError
......... OverflowError
......... ZeroDivisionError
...... AssertionError
...... AttributeError
...... BufferError
...... CalledProcessError
...... EOFError
...... EnvironmentError
......... IOError
............ BlockingIOError
............ ItimerError
............ UnsupportedOperation
......... OSError
...... Error (<class 'locale.Error'>)
...... ImportError
......... ZipImportError
...... LookupError
......... CodecRegistryError
......... IndexError
......... KeyError
...... MemoryError
...... NameError
......... UnboundLocalError
...... PickleError
......... PicklingError
......... UnpicklingError
...... PickleError
......... PicklingError
......... UnpicklingError
...... ReferenceError
...... RuntimeError
......... NotImplementedError
...... StopIteration
...... StopTokenizing
...... SyntaxError
......... IndentationError
............ TabError
...... SystemError
......... CodecRegistryError
...... TokenError
...... TypeError
...... ValueError
......... UnicodeError
............ UnicodeDecodeError
............ UnicodeEncodeError
............ UnicodeTranslateError
......... UnsupportedOperation
...... Warning
......... BytesWarning
......... DeprecationWarning
......... FutureWarning
......... ImportWarning
......... PendingDeprecationWarning
......... ResourceWarning
......... RuntimeWarning
......... SyntaxWarning
......... UnicodeWarning
......... UserWarning
...... _OptionError
...... _Stop
...... error (<class 'sre_constants.error'>)
...... error (<class '_thread.error'>)
...... error (<class 'select.error'>)
...... error (<class 'struct.error'>)
... GeneratorExit
... KeyboardInterrupt
... SystemExit
$ pyenv shell 3.3.6
$ python print_exc_tree.py
Python Version: 3.3.6

BaseException
... Exception
...... ArithmeticError
......... FloatingPointError
......... OverflowError
......... ZeroDivisionError
...... AssertionError
...... AttributeError
...... BufferError
...... EOFError
...... Error (<class 'locale.Error'>)
...... ImportError
......... ZipImportError
...... LookupError
......... CodecRegistryError
......... IndexError
......... KeyError
...... MemoryError
...... NameError
......... UnboundLocalError
...... OSError
......... BlockingIOError
......... ChildProcessError
......... ConnectionError
............ BrokenPipeError
............ ConnectionAbortedError
............ ConnectionRefusedError
............ ConnectionResetError
......... FileExistsError
......... FileNotFoundError
......... InterruptedError
......... IsADirectoryError
......... ItimerError
......... NotADirectoryError
......... PermissionError
......... ProcessLookupError
......... TimeoutError
......... UnsupportedOperation
...... ReferenceError
...... RuntimeError
......... NotImplementedError
......... _DeadlockError
...... StopIteration
...... StopTokenizing
...... SubprocessError
......... CalledProcessError
......... TimeoutExpired
...... SyntaxError
......... IndentationError
............ TabError
...... SystemError
......... CodecRegistryError
...... TokenError
...... TypeError
...... ValueError
......... UnicodeError
............ UnicodeDecodeError
............ UnicodeEncodeError
............ UnicodeTranslateError
......... UnsupportedOperation
...... Warning
......... BytesWarning
......... DeprecationWarning
......... FutureWarning
......... ImportWarning
......... PendingDeprecationWarning
......... ResourceWarning
......... RuntimeWarning
......... SyntaxWarning
......... UnicodeWarning
......... UserWarning
...... _OptionError
...... error (<class 'sre_constants.error'>)
... GeneratorExit
... KeyboardInterrupt
... SystemExit
$ pyenv shell 3.4.3
$ python print_exc_tree.py
Python Version: 3.4.3

BaseException
... Exception
...... ArithmeticError
......... FloatingPointError
......... OverflowError
......... ZeroDivisionError
...... AssertionError
...... AttributeError
...... BufferError
...... EOFError
...... Error (<class 'locale.Error'>)
...... ImportError
......... ZipImportError
...... LookupError
......... CodecRegistryError
......... IndexError
......... KeyError
...... MemoryError
...... NameError
......... UnboundLocalError
...... OSError
......... BlockingIOError
......... ChildProcessError
......... ConnectionError
............ BrokenPipeError
............ ConnectionAbortedError
............ ConnectionRefusedError
............ ConnectionResetError
......... FileExistsError
......... FileNotFoundError
......... InterruptedError
......... IsADirectoryError
......... ItimerError
......... NotADirectoryError
......... PermissionError
......... ProcessLookupError
......... TimeoutError
......... UnsupportedOperation
...... ReferenceError
...... RuntimeError
......... BrokenBarrierError
......... NotImplementedError
......... _DeadlockError
...... StopIteration
...... StopTokenizing
...... SubprocessError
......... CalledProcessError
......... TimeoutExpired
...... SyntaxError
......... IndentationError
............ TabError
...... SystemError
......... CodecRegistryError
...... TokenError
...... TypeError
...... ValueError
......... UnicodeError
............ UnicodeDecodeError
............ UnicodeEncodeError
............ UnicodeTranslateError
......... UnsupportedOperation
...... Warning
......... BytesWarning
......... DeprecationWarning
......... FutureWarning
......... ImportWarning
......... PendingDeprecationWarning
......... ResourceWarning
......... RuntimeWarning
......... SyntaxWarning
......... UnicodeWarning
......... UserWarning
...... _OptionError
...... error (<class 'sre_constants.error'>)
... GeneratorExit
... KeyboardInterrupt
... SystemExit

Ich habe gerade die Details untersucht, also lasse ich es hier, aber hier werde ich besonders darauf achten, dass "IOError" in Python 3.3 verschwunden ist und dass sich die Vererbungsstruktur um "OSError" drastisch geändert hat. Dies ist auch einer der Hauptunterschiede zwischen den aktuellen 2 und 3 Systemen.

In Python 3.3 verschwand IOError und OSError wurde aussortiert.

Dies ist eine Änderung basierend auf "PEP 3151 - Überarbeitung der Betriebssystem- und E / A-Ausnahmehierarchie". Sie können die Details sehen, indem Sie denselben PEP lesen, aber es scheint, dass ein Hauptfaktor darin besteht, dass der Fehler während des Dateivorgangs zwischen "IOError" und "OSError" aufgeteilt wurde.

>>> os.remove("fff")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
OSError: [Errno 2] No such file or directory: 'fff'

>>> open("fff")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IOError: [Errno 2] No such file or directory: 'fff'

Auf dieser Ebene gibt es keinen großen Unterschied zwischen 3,3, 3,4 und 3,5. Auf Baumebene scheinen neue Ausnahmeklassen hinzugefügt worden zu sein (BrokenBarrierError in 3.3 → 3.4, RecursionError und StopAsyncIteration in 3.4 → 3.5).

Die Änderung des Verhaltens jeder Funktion ist jedoch in der Baumstruktur nicht bekannt. Wenn Sie also interessiert sind, lesen Sie das Änderungsprotokoll usw. sorgfältig durch, einschließlich des Unterschieds in Nebenversionen.

Ausführungsergebnis in 3.6.2

Nachtrag (05.08.2017): In der vorherigen Version war es 3.6.0b2, aber da die offizielle Version in 3.6 veröffentlicht wurde, wird es 3.6.2 sein. Ich werde den ganzen Satz vorerst nicht überarbeiten.

Im Anschluss an den obigen Ablauf habe ich auch die 3.6.2-Baumstruktur untersucht, die derzeit entwickelt wird.

Python Version: 3.6.2

BaseException
... Exception
...... ArithmeticError
......... FloatingPointError
......... OverflowError
......... ZeroDivisionError
...... AssertionError
...... AttributeError
...... BufferError
...... EOFError
...... Error (<class 'locale.Error'>)
...... ImportError
......... ModuleNotFoundError
......... ZipImportError
...... LookupError
......... CodecRegistryError
......... IndexError
......... KeyError
...... MemoryError
...... NameError
......... UnboundLocalError
...... OSError
......... BlockingIOError
......... ChildProcessError
......... ConnectionError
............ BrokenPipeError
............ ConnectionAbortedError
............ ConnectionRefusedError
............ ConnectionResetError
......... FileExistsError
......... FileNotFoundError
......... InterruptedError
......... IsADirectoryError
......... ItimerError
......... NotADirectoryError
......... PermissionError
......... ProcessLookupError
......... TimeoutError
......... UnsupportedOperation
...... ReferenceError
...... RuntimeError
......... BrokenBarrierError
......... NotImplementedError
......... RecursionError
......... _DeadlockError
...... StopAsyncIteration
...... StopIteration
...... StopTokenizing
...... SubprocessError
......... CalledProcessError
......... TimeoutExpired
...... SyntaxError
......... IndentationError
............ TabError
...... SystemError
......... CodecRegistryError
...... TokenError
...... TypeError
...... ValueError
......... UnicodeError
............ UnicodeDecodeError
............ UnicodeEncodeError
............ UnicodeTranslateError
......... UnsupportedOperation
...... Verbose
...... Warning
......... BytesWarning
......... DeprecationWarning
......... FutureWarning
......... ImportWarning
......... PendingDeprecationWarning
......... ResourceWarning
......... RuntimeWarning
......... SyntaxWarning
......... UnicodeWarning
......... UserWarning
...... _OptionError
...... error (<class 'sre_constants.error'>)
... GeneratorExit
... KeyboardInterrupt
... SystemExit
$ diff /tmp/352.txt /tmp/362.txt
1c1
< Python Version: 3.5.2
---
> Python Version: 3.6.2
14a15
> ......... ModuleNotFoundError
65a67
> ...... Verbose

Es gibt zwei neue Ausnahmen, aber es scheint auch keine wesentliche Änderung zu sein.

Klicken Sie hier, um Informationen zu 3.6 zu erhalten: https://docs.python.org/3.6/whatsnew/3.6.html (Da es mit den neuesten Informationen von 3.6 aktualisiert wird, muss es nicht unbedingt 3.6.2 oben sein!)

Beilage 2 (12.12.2017): Der Unterschied zwischen 3.6.2 und dem neuesten 3.6.7 zum Zeitpunkt der Aktualisierung ist unten dargestellt.

$ diff 362.txt 367.txt
1c1
< Python Version: 3.6.2
---
> Python Version: 3.6.7

Ausführungsergebnis in 3.7.1

$ diff 367.txt 371.txt
1c1
< Python Version: 3.6.7
---
> Python Version: 3.7.1
80c80
< ...... error (<class 'sre_constants.error'>)
---
> ...... error (<class 're.error'>)

Es gibt keinen großen Unterschied.

Referenz: https://docs.python.org/3.7/whatsnew/3.7.html

Wenn Sie ein Ausnahmesystem mit Ihrem eigenen Modul erstellen möchten

Wenn Sie Python-Laufzeitausnahmen direkt in Ihrem Modul verwenden, können Sie Ihr Modul nicht von Python-Laufzeitfehlern (z. B. "RuntimeError" oder "OSError") unterscheiden. Grundsätzlich ist es üblich, eine Basisausnahme in Ihrem eigenen Modul zu erstellen und daraus einen Ausnahmeklassenbaum zu erstellen. Dies ist ein Konzept, das häufig in anderen Sprachen zu finden ist und die Idee von Ausnahmen eingeführt hat.

Wenn Sie ein eigenes baumstrukturiertes Ausnahmesystem erstellen, empfiehlt Python, "Exception" oder seine Unterklassen als Basisausnahmeklasse (http://docs.python.jp/3/library/exceptions) zu erben. .html).

Sie können die integrierte Ausnahmeklasse in Unterklassen unterteilen, um neue Ausnahmen zu definieren. Wir empfehlen, dass neue Ausnahmen von Exception oder seinen Unterklassen anstelle von BaseException abgeleitet werden. Weitere Informationen zum Definieren von Ausnahmen finden Sie im Abschnitt Benutzerdefinierte Ausnahmen des Python-Lernprogramms.

Serpentine: Vergleich mit Ruby

Ein Wort zu einer anderen Sprache, Ruby.

Laut "Effective Ruby" ist "StandardError" eine gute Basisklasse zum Erstellen benutzerdefinierter Ausnahmen. Es gibt eine gleichnamige Klasse in der 2. Reihe, aber es gibt überhaupt keine Ausnahmeklasse in der Python 3-Reihe. Betrachten Sie also "Ausnahme" und ihre Unterklassen.

Beachten Sie beim Umschalten zwischen mehreren Programmiersprachen die geringfügigen Unterschiede bei Konventionen, Regeln und Konventionen.

Referenz

aktualisieren

2016-09-14

2016-10-24

2016-10-25

Rückblickend könnte es freundlicher gewesen sein, "cls .__ module__! =" Builtins "als" cls .__ name__ "zu verwenden. Lower () ==" error "im obigen Zweig des Validierungscodes. nicht. Wir planen dies, wenn wir das nächste Mal eine größere Korrektur vornehmen.

Obwohl der Titel "Integrierte Ausnahmebaumstruktur" lautet, erfordert die angezeigte Baumstruktur keinen Import wie "Ausnahme" (integrierte) Ausnahmeklasse und "io.UnsupportedOperation" Es gibt einige Ausnahmeklassen wie `, die nicht gelesen werden können, ohne ein Modul zu importieren. Wenn Sie zum Beispiel "Hmm, was ist" Verbose "" denken und nachschlagen?

Python 3.6.0b2 (default, Oct 25 2016, 09:04:16)
[GCC 4.2.1 Compatible Apple LLVM 8.0.0 (clang-800.0.38)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> help(Verbose)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'Verbose' is not defined
>>> import sre_parse
>>> help(sre_parse.Verbose)
(Hilfe wird angezeigt)

Und Verwirrung stiften.

2017-08-05

Wir haben 3.6.2 anstelle von 3.6.0b2 übernommen. Als Referenz wird das Ergebnis von 3.7-dev veröffentlicht.

2018-12-12

2020-03-29

Die Fortsetzung ist ein separater Artikel.

https://qiita.com/amedama/items/e1a605c004d1e2276778

Zur gleichen Zeit schrieb ich über das obige " StopTokenizing SubprocessError verschwindet aus der Ausnahmeliste". Der Punkt ist: "Es gibt keine Möglichkeit für Eltern, ihre Kinder zu kennen, da sie beim Start der Laufzeit nicht geladen werden", aber es scheint nicht aus der Implementierung zu verschwinden.

Recommended Posts

Sehen Sie sich die in Python integrierte Ausnahmebaumstruktur an
Sehen Sie sich die in Python 3.8.2 integrierte Ausnahmebaumstruktur an
Schauen Sie sich das Kaggle / Titanic-Tutorial genauer an
Werfen wir einen Blick auf den Scapy-Code. Wie bearbeiten Sie die Struktur?
Werfen wir einen Blick auf die Feature-Map von YOLO v3
[Python] Machen Sie einen Screenshot
Werfen Sie einen Blick auf die Verarbeitung von LightGBM Tuner
Aufgaben zu Beginn eines neuen Python-Projekts
Sehen Sie sich das Profiling und Dumping mit Dataflow an
Nehmen Sie eine Instanz einer Python-Ausnahmeklasse nicht direkt als Argument für die Ausnahmeklasse!
Machen Sie einen Screenshot in Python
Versuchen Sie es mit dem Python-Webframework Django (2). Schauen Sie sich settings.py an
Fordern Sie die Bildklassifizierung mit TensorFlow2 + Keras 2 heraus ~ Schauen wir uns die Eingabedaten genauer an ~
Wenn Sie eine Programmiersprache lernen, sollten Sie sich zunächst das Familiendiagramm der Programmiersprache ansehen.
Ich habe mir genauer angesehen, warum Python selbst benötigt wird
Schauen wir uns den Waldbrand an der Westküste der USA mit Satellitenbildern an.
Werfen wir einen Blick auf den Scapy-Code. Überladung spezieller Methoden __div__, __getitem__.
Was ist die XX-Datei im Stammverzeichnis eines beliebten Python-Projekts?
[Mac] Erstellen Sie mit Docker eine Python 3.x-Umgebung mit der schnellsten Geschwindigkeit
Holen Sie sich zu jeder Tageszeit eine Datums- / Uhrzeitinstanz in Python
Machen Sie mit Python einen Entscheidungsbaum von 0 und verstehen Sie ihn (4. Datenstruktur)
Ausgabebaumstruktur von Dateien in Python
Schreiben Sie den Test in die Python-Dokumentzeichenfolge
Durchsuche das Labyrinth mit dem Python A * -Algorithmus
[Python] [Windows] Machen Sie eine Bildschirmaufnahme mit Python
Führen Sie den Python-Interpreter im Skript aus
[Python] [Meta] Ist der Python-Typ ein Typ?
Rufen Sie den Python-Debugger jederzeit auf
Zeichnen Sie mit graphviz eine Baumstruktur in Python 3
Python-Ausnahmebehandlung etwas bequemer
Python-Grundkurs (Ende 15)
Die Geschichte der Verarbeitung A von Blackjack (Python)
[Python] Ein Fortschrittsbalken auf dem Terminal
Nehmen Sie an der Python3 Engineer-Zertifizierungsgrundprüfung teil
[Python] Ein Programm, das die Partitur rundet
Drehen Sie in Python mehrere Listen mit for-Anweisung gleichzeitig