Können Sie Affen-Patch-Methoden für Kerntypen in Python verwenden?

Ruby kann der Number-Klasse und anderen Core-Typen Methoden hinzufügen, um folgende Effekte zu erzielen:

1.should_equal(1)

Aber anscheinend kann Python das nicht. Ist das wahr? Und wenn ja, warum? Hat es etwas damit zu tun, dassArt kann nicht geändert werden?

Update: Anstatt über verschiedene Definitionen von Affen-Patching zu sprechen, möchte ich mich nur auf das obige Beispiel konzentrieren. Ich bin bereits zu dem Schluss gekommen, dass dies nicht möglich ist, da einige von Ihnen geantwortet haben. Aber ich möchte eine detailliertere Erklärung, warum dies nicht möglich ist und welche Funktion, falls sie in Python verfügbar ist, dies möglicherweise zulässt.

Um einige von Ihnen zu beantworten: Der Grund, warum ichkönnte Dies zu tun ist einfach Ästhetik / Lesbarkeit.

 item.price.should_equal(19.99)

Dies liest sich eher wie Englisch und zeigt deutlich an, welcher der getestete Wert und welcher der erwartete Wert ist.

should_equal(item.price, 19.99)

Dieses Konzept ist wasRspec und einige andere Ruby-Frameworks basieren auf.

Antworten auf die Frage(14)

Ihre Antwort auf die Frage