La seguente definizione di classe è un buon progetto?
class Myclass:
def __init__(self,num1,num2):
self.complicated_tree = __class__.object_creator(num1,num2)
@classmethod
def tree_creator(cls,num1,num2):
return num1+num2 #in practice, this functions would be really long
#and would return a whole tree of numbers
#my tree doesn't need all the standard traversing etc. methods, just very few
#special ones
def specialized_method1(self):
pass
def specialized_method2(self):
pass
Sono un principiante in Python e finora tutti gli argomenti del metodo di classe __init__
erano identici agli attributi dell'oggetto. In questo caso, questo non è più vero, perché questa classe deve contenere oggetti che prima devono essere costruiti in un modo complicato: un tipo speciale di albero che devo prima generare in 20 righe di codice usando num1
e num2
.
Questo definisce un buon design / pratica di una tale classe? O dovrei generare l'intero albero al di fuori della classe, in modo che il metodo __init __
dell'albero sia
def __init__(self,tree):
self.tree = tree
e la funzione tree_creator
è una funzione separata al di fuori della classe?