2009-05-12 21 views

Antwort

7

Sicher. Klassen sind erstklassige Objekte in Python.

In Ihrem Beispiel sollten Sie das @classmethod (Klassenobjekt als erstes Argument) oder @staticmethod (kein Anfangsargument) Dekorator für Ihre Methode verwenden.

+0

Weg auf meine Antwort zu ändern. – Unknown

+1

Nein, meine Antwort basiert nicht auf deiner. Ich habe mich jedoch schuldig gemacht, eine Ein-Satz-Antwort zu schreiben, nur um einen ersten Schuss zu bekommen und ihn dann innerhalb der 5-minütigen Gnade zu erweitern. –

+4

Das ist das gleiche Unbekannte, das mir den gleichen Müll gab ... Ich nahm mir Zeit, eine nachdenkliche Antwort zu schreiben und jemandem zu helfen und achtete nicht einmal darauf, was irgendjemand sonst gepostet hatte. Ich habe ihm schade +1 gegeben, aber jetzt bereue ich es. Ich denke, jeder muss aufhören, so rufhungrig zu sein und versuchen, sich gegenseitig zu helfen. – Tom

0

Sicher warum nicht? Vergessen Sie nicht, @staticmethod zu statischen Methoden hinzuzufügen.

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

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

Link zu Python-Dokumenten (http://docs.python.org/library/functions.html#staticmethod) auf statische Methode –

+0

Unbekannt, keine Anerkennung für Musikfreaks Antwort oder meine. Wenn mein Beitrag der einzige wäre, den Sie auf diese Weise kommentieren würden, würde ich ihn loslassen; Ich bin mir sicher genug von meiner Antwort zu wissen, dass ich niemanden abgeschrieben habe. Aber Musikfreak ist ein Neuling für SO; Du musst anderen Nutzern gegenüber besser sein. Sie fälschlicherweise beschuldigen, Sie zu kopieren, ist nur ... zu hoch von sich selbst zu denken.:-P –

+0

@Chris ist einfach zu verdächtig, dass du und Musikfreak inhaltlose Antworten hatten, die grundsätzlich "ja" sagten. Dann, als ich meine statische Methode hatte, eine Minute später, wechselten Sie beide die gleiche Antwort wie ich. – Unknown

5

sollten Sie in der Lage sein, die folgenden (beachten Sie die @staticmethod Dekorateur) zu tun:

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