procedural-programming

___ qstntxt ___

Ich schreibe viele Skripte in Python, um experimentelle Daten zu analysieren und zu plotten sowie einfache Simulationen zu schreiben, um zu testen, wie Theorien zu den Daten passen. Die Skripte sind sehr prozedural; eine Eigenschaft berechnen, eine andere Eigenschaft berechnen, Eigenschaften plotten, Grundstück analysieren ...

Anstatt nur eine Prozedur zu schreiben, würde es Vorteile geben, eine Klasse zu benutzen? Ich kann die eigentliche Analyse in Funktionen vergraben, so dass ich die Daten an die Funktion übergeben kann und sie es tun lassen kann, aber die Funktionen sind nicht in einer Klasse enthalten.

Welche Art von Nachteilen würde eine Klasse überkommen und was wäre der Zweck der Verwendung einer Klasse, wenn sie prozedural geschrieben werden kann?

Wenn dies vor meiner Entschuldigung veröffentlicht wurde, zeigen Sie mich einfach in diese Richtung.

    
___ qstnhdr ___ Klassenverwendung in Python ___ answer1440734 ___

OOP eignet sich gut für komplexe Programme. Es ist großartig, um den Zustand und das Verhalten von realen Weltkonzepten einzufangen und das Zusammenspiel zwischen ihnen zu koordinieren. Guter OO-Code ist einfach zu lesen / zu verstehen, schützt die Integrität Ihrer Daten und maximiert die Wiederverwendung von Code. Ich würde sagen, die Wiederverwendung von Code ist ein großer Vorteil, um Ihre häufig verwendeten Berechnungen in einer Klasse zu halten.

    
___ answer1440467 ___

Durch Verwendung der objektorientierten Programmierung haben Sie Objekte, denen Funktionen zugeordnet sind, die die einzige Möglichkeit sind, ihre Eigenschaften (interne Variablen) zu modifizieren (sollten).

Es war üblich, Funktionen namens %code% zu haben, während man mit %code% Klasse %code% machen konnte. Der Unterschied macht sich hauptsächlich bei großen komplexen Modulen bemerkbar, bei denen Sie alles tun müssen, um die Kopplung zwischen einzelnen Komponenten zu minimieren.

Es gibt andere Konzepte, die OOP umfassen, wie die Vererbung, aber das wirklich Wichtige ist, dass OOP dazu dient, Sie über Objekte nachzudenken, die Operationen und Nachrichtenübergaben (Methoden / Verben) haben. , anstatt in Begriffen von Operationen (Funktionen / Verben) und Grundelementen (Variablen) zu denken.

  

The Die Bedeutung des objektorientierten Paradigmas liegt nicht so sehr im Sprachmechanismus wie im Denk- und Designprozess.

Sehen Sie sich auch an diese Frage .

Es gibt nichts inhärent falsch über das Strukturierte Programmieren, es ist nur so, dass einige Probleme besser zu einem objektorientierten Design passen.

Zum Beispiel könnten Sie in einer SP Sprache haben:

%Vor%

Wenn Sie auf einem OOP sind, haben Sie:

%Vor%

Sie können sehen, dass bei SP jedes Tier, das Sie hinzufügen, ein weiteres %code% zu %code% hinzugefügt werden muss, eine weitere Variable hinzugefügt werden muss, um den Namen des Tieres zu speichern, potenziell jede Funktion im Modul zu berühren, Während der OOP können Sie Ihre Klasse als unabhängig vom Rest betrachten. Wenn es eine globale Änderung gibt, ändern Sie die %code% , wenn es eine enge Änderung ist, müssen Sie nur die Klassendefinition betrachten.

Für einfachen, sequenziellen und möglicherweise wegwerfbaren Code ist es in Ordnung, strukturierte Programmierung zu verwenden.

    
___ tag123python ___ Python ist eine dynamische und stark typisierte Programmiersprache, die die Usability betont. Zwei ähnliche, aber größtenteils inkompatible Versionen von Python sind weit verbreitet (2 und 3). Wenn Sie eine versionsspezifische Python-Frage haben, sollten Sie die Tags [python-2.7] oder [python-3.x] zusätzlich zum Tag [python] verwenden. Wenn Sie eine Python-Variante wie jython, pypy, iron-python usw. verwenden, kennzeichnen Sie diese bitte entsprechend. ___ answer1447527 ___
  • Objektorientierte Programmierung ist nicht die Lösung für jedes Codierungsproblem.

  • In Python sind Funktionen Objekte. Sie können beliebig viele Objekte und Funktionen mischen.

  • Module mit Funktionen sind bereits Objekte mit Eigenschaften.

  • Wenn Sie feststellen, dass Sie viele der gleichen Variablen - state - passieren, ist ein Objekt wahrscheinlich besser geeignet. Wenn Sie viele Klassen mit Klassenmethoden oder Methoden haben, die %code% nicht sehr verwenden, dann sind Funktionen wahrscheinlich besser.

___ tag123oop ___ Objektorientierte Programmierung ist ein Programmierparadigma, das "Objekte" verwendet: Datenstrukturen, die aus Datenfeldern und Methoden zusammen mit ihren Interaktionen bestehen. ___ tag123classdesign ___ Bezieht sich auf die strukturelle Definition der Klasseneinheit in objektorientierten Sprachen. ___ tag123prozedurales Programmieren ___ Prozedurales Programmieren bezeichnet die Art und Weise, in der ein Computerprogrammierer ein Programm schreibt. Diese Methode der Entwicklung von Software, die auch als Anwendung bezeichnet wird, dreht sich darum, den Code so prägnant wie möglich zu halten. Es konzentriert sich auch auf ein sehr spezifisches Endergebnis, das erreicht werden soll. Wenn es zwingend erforderlich ist, dass ein Programm bestimmte Schritte ausführt, um bestimmte Ergebnisse zu erzielen, soll der Code nach prozeduraler Programmierung geschrieben worden sein. ___ answer1440684 ___

"aber die Funktionen sind nicht in einer Klasse enthalten."

Sie könnten sein.

%Vor%

Jetzt sind Ihre Berechnungen in Klassen verpackt. Sie können Entwurfsmuster wie Delegierung , Komposition und Befehl verwenden, um Ihre Skripts zu vereinfachen.

    
___ answer1440655 ___

Sie brauchen nicht, um Klassen in Python zu verwenden - es zwingt Sie nicht, OOP zu machen. Wenn Sie mit dem funktionalen Stil mehr zufrieden sind, ist das in Ordnung. Ich benutze Klassen, wenn ich eine Abstraktion modellieren will, die Variationen hat, und ich möchte diese Variationen mit Klassen modellieren. Wie das Wort "Klasse" impliziert, sind sie hauptsächlich nützlich, wenn die Dinge, mit denen Sie arbeiten, natürlich in verschiedene Klassen fallen. Wenn ich nur große Datenmengen manipuliere, habe ich keine übergeordnete Notwendigkeit gefunden, einem OOP-Paradigma nur zuliebe zu folgen.

    
___
11
Antworten

OOP vs PP für Algorithmen

Welches Paradigma ist besser für das Design und die Analyse von Algorithmen? Welche ist schneller? Weil ich ein Fach mit dem Namen Design and Analysis of Algorithms in der Universität habe und ein Zeitlimit für Programme habe. Ist OOP langsamer...
18.03.2010, 09:20
3
Antworten

Konvertieren von prozeduralem PHP in objektorientiertes PHP

Ich habe derzeit eine ziemlich große Anwendung, die vollständig mit prozeduralem PHP geschrieben ist. Ich versuche, meine PHP-Erfahrung zu verbessern und einen Großteil meiner Anwendung mit objektorientierten Techniken zu rekodieren. Es gibt...
14.03.2013, 22:16
3
Antworten

Ich behalte alles in einer externen .js-Datei. Aber nicht alle Funktionen werden auf jeder Seite verwendet. Beeinflusst das die Geschwindigkeit?

Die JavaScript / jQuery-Funktion meiner App ist in einer externen scripts.js -Datei enthalten. Es sieht im Allgemeinen so aus: %Vor% giraffe() wird nur für die Ansicht verwendet, die unter% co_de verfügbar ist% /animal/giraffe wird...
11.06.2013, 10:10
5
Antworten

Klassenverwendung in Python

Ich schreibe viele Skripte in Python, um experimentelle Daten zu analysieren und zu plotten sowie einfache Simulationen zu schreiben, um zu testen, wie Theorien zu den Daten passen. Die Skripte sind sehr prozedural; eine Eigenschaft berechnen, e...
17.09.2009, 18:07