2009-05-12 12 views

risposta

7

Sicuro. Le classi sono oggetti di prima classe in Python.

Anche se, nel tuo esempio, dovresti utilizzare lo @classmethod (oggetto di classe come argomento iniziale) o @staticmethod (senza argomento iniziale) decoratore per il tuo metodo.

+0

modo per cambiare alla mia risposta. – Unknown

+1

No, la mia risposta non è basata sul tuo. Tuttavia, sono colpevole di scrivere una risposta a una frase solo per ottenere un primo colpo, quindi espandendolo entro la grazia di 5 minuti. –

+4

Questo è lo stesso sconosciuto che mi ha dato la stessa spazzatura l'altro giorno ... Mi sono preso il mio tempo per scrivere una risposta ponderata e aiutare qualcuno e non stava nemmeno prestando attenzione a ciò che qualcun altro stava postando. Gli ho dato un peccato +1, ma ora me ne pento. Penso che tutti debbano smettere di essere così affamati di reputazione e cercare semplicemente di aiutarsi a vicenda. – Tom

0

Sicuro perché no? Non dimenticare di aggiungere @staticmethod ai metodi statici.

class A: 
    @staticmethod 
    def static_method_A(): 
    print "hello" 

def main(param=A): 
    param.static_method_A() 
+0

Collegamento a documenti python (http://docs.python.org/library/functions.html#staticmethod) su metodo statico –

+0

Sconosciuto, non richiedere credito per la risposta di musicfreak o mia. Se il mio post fosse l'unico che hai commentato in quel modo, l'avrei lasciato andare; Sono abbastanza sicuro della mia risposta per sapere che non ho copiato nessuno. Ma musicfreak è un principiante di SO; devi essere migliore con gli altri utenti. Falsamente accusandoli di copiarti è solo ... pensare troppo bene a te stesso.:-P –

+0

@Chris è semplicemente troppo sospettoso che tu e musicfreak abbiate risposte prive di contenuto che sostanzialmente dicevano "sì". Poi, quando ho avuto la mia risposta di metodo statico, 1 minuto dopo, entrambi avete cambiato la stessa risposta come me. – Unknown

5

Si dovrebbe essere in grado di fare quanto segue (notare il @staticmethod decoratore):

class A: 
    @staticmethod 
    def static_method_A(): 
    print "hello" 
def main(param=A): 
    param.static_method_A() 
Problemi correlati