Ich muss eine Funktion erstellen, um eine bestimmte Matrix (Liste von Listen) im Uhrzeigersinn zu drehen, und ich muss es in meiner Table
Klasse verwenden. Wo sollte ich diese Dienstprogrammfunktion (rotateMatrixClockwise
genannt) setzen, damit ich sie leicht innerhalb einer Funktion in meiner Klasse Table
aufrufen kann?Wo stelle ich Dienstprogrammfunktionen in mein Python-Projekt?
Antwort
Wenn Sie nicht möchten, dass es ein Mitglied der Table
Klasse wird, könnten Sie es in ein utilities
Modul setzen.
es sich um eine statische Funktion Make ...
- die @staticmethod Dekorateur hinzufügen
- nicht enthalten 'Selbst' als erstes Argument
Ihre Definition wäre:
@staticmethod
def rotateMatrixClockwise():
# enter code here...
Welche wird es aufrufbar machen Überall dort, wo Sie 'Tabelle' importiert haben:
table.rotateMatrixClockwise()
Der Dekorator muss nur python mitteilen, dass kein implizites erstes Argument erwartet wird. Wenn Sie festlegen möchten, dass Methodendefinitionen wie C#/Java funktionieren, wobei self immer implizit ist, können Sie auch den Dekorator '@classmethod' verwenden.
Here's the documentation for this coming directly from the python manual.
Hinweis: Ich würde empfehlen, Utility-Klassen nur dann, wenn ihr Code kann nicht direkt mit einem Modul gekoppelt werden, da sie in der Regel der ‚Single Responsibility Principle‘ des OOP verletzen. Es ist fast immer am besten, um die Funktionalität einer Klasse als Methode/Mitglied der Klasse zu binden.
- 1. Wo sollte ich allgemeine Dienstprogrammfunktionen für Perl.t-Tests setzen?
- 2. CDI: beans.xml, wo stelle ich dich hin?
- 3. Java - entityExpansionLimit. Wo stelle ich das ein?
- 4. Wo stelle ich reguläre Funktionen, Angularjs
- 5. Facebook App: Wo stelle ich offline_access Anfrage?
- 6. Wo stelle ich Tests in ein fsharp-Projekt mit Monodevelop?
- 7. Wie stelle ich mein asp.net-Projekt in IIS bereit?
- 8. Wo in meiner Klasse stelle ich die @ XmlElement Annotation?
- 9. Wo stelle ich all diese funktionsähnlichen #defines in C?
- 10. Elegante Praktiken auf "zufällige Dienstprogrammfunktionen"
- 11. Backbone.js: Wo setze ich mein jQuery-Setup?
- 12. Wo ist mein Syntaxfehler?
- 13. Wie stelle ich mein Intellij-idea UI-Theme ein?
- 14. Wie stelle ich fest, wo die Integer (string) Methode gehört?
- 15. DataAccess Layer und Klasse, wo stelle ich meine Funktionen ein?
- 16. fehlt) nach der Argumentliste, wo stelle ich es diesmal?
- 17. Wo ist android_sdk_root? und wie stelle ich es ein?
- 18. Wo stelle ich die Vorlage für Schienen Fehlermeldungen ein?
- 19. FORCE INDEX mySQL ... wo stelle ich es hin?
- 20. QT CREATOR - wo stelle ich die/NODEFAULTLIB: Bibliothek?
- 21. Wo lege ich weblogic-application.xml in mein Maven 2-Projekt?
- 22. Wo finde ich mein Paket in Lumen Framework?
- 23. Best Practices für JQuery-Namespaces + allgemeine Dienstprogrammfunktionen
- 24. Wo speichert Linux mein Syslog?
- 25. Wo ist mein URL-Parameter?
- 26. Wo ist mein Chef-Datenbeutel?
- 27. Wo hat mein Benutzer mein Web-Setup-Projekt installiert?
- 28. Wo sollte ich Einstellungen für mein Javascript-Programm speichern?
- 29. Wo sollte ich mein Domänenmodell platzieren, um Modellzuordnungscode anzuzeigen?
- 30. Wo finde ich die Bibliothek libxul.so für mein Linux-System?