ich gebe zu, der Betreff dieses Themas ist nicht ganz getroffen. Eines vorweg, ehe wir zum Anliegen kommen. Ich möchte, dass wir uns die leidige Kritik wie "Name der Methode ist nicht zutreffend" oder "Name der Klasse ist doof" oder "Das Beispiel ist einfach nicht sinnvoll" etc. Die angeführten Beispiele sollen nur den eigentlichen Kern des Themas erfassen. Aus diesem Grund habe ich mir keine Gedanken über den Sinn oder Unsinn der Beispiele gemacht. Ersparen wir es uns also.
Kommen wir zum Verständnisproblem. Ich arbeite in meinem Projekt mit recht vielen Klassen. Und ich erwische mich immer wieder, dass ich jede Klasse anders behandle. Es passiert oft, dass ich der instantisierten Klasse A kaum Argumente übergebe, dafür mehr der jeweiligen Methoden. Dann passiert auch, dass ich der instantisierten Klasse B recht viele Argumente übergebe, und die jeweiligen Methoden recht wenig. Nun meine Frage vorab: Ab wann übergebt ihr der instantisierten Klasse Argumente und ab wann der jeweiligen Methode? Ich habe für euch zwei Beispiele mitgebracht, und werde im Anschluss mein Bauchgefühl äußern.
Code: Alles auswählen
from PyQt4.QtCore import QObject
class CalculatorVersionOne(QObject):
def __init__(self,
parent = None):
QObject.__init__(self, parent)
def calculate_bmi(self,
bodyweight,
bodyheight):
return round(bodyweight / ((bodyheight/100) ** 2))
class CalculatorVersionTwo(QObject):
def __init__(self,
parent = None,
**kwargs):
QObject.__init__(self, parent)
self.bodyweight = kwargs.get('bodyweight')
self.bodyheight = kwargs.get('bodyheight')
def calculate_bmi(self):
return round(self.bodyweight / ((self.bodyheight/100) ** 2))
calculator_version_one = CalculatorVersionOne()
bmi_result_v1 = calculator_version_one.calculate_bmi(bodyweight = 85,
bodyheight = 184)
print "Result BMI V1", bmi_result_v1
calculator_version_two = CalculatorVersionTwo(bodyweight = 85,
bodyheight = 184)
print "Result BMI V2", calculator_version_two.calculate_bmi()