2009-08-19 6 views
4

Ich spiele mit Python, und ich habe eine Klasse in einem anderen Paket erstellt als das, das sie aufruft. In dieser Klasse habe ich eine Klassenmethode hinzugefügt, die von meiner Hauptfunktion aufgerufen wird. Auch hier sind sie in getrennten Paketen. Die Zeile, um die Klassenmethode aufzurufen, ist viel länger, als ich von den Beispielen, die ich an anderen Stellen gesehen habe, herrühren würde. Diese Beispiele neigen dazu, Klassenmethoden innerhalb des gleichen Pakets aufzurufen - wodurch die aufrufende Syntax verkürzt wird.Python-Klassenmethode - Gibt es eine Möglichkeit, die Anrufe kürzer zu machen?

Hier ist ein Beispiel, das ich hoffe, hilft:

In einem 'config' Paket:

class TestClass : 
    memberdict = { } 

    @classmethod 
    def add_key(clazz, key, value) : 
     memberdict[ key ] = value 

Jetzt in einem anderen Paket 'test' genannt:

import sys 
import config.TestClass 

def main() : 
    config.TestClass.TestClass.add_key("mykey", "newvalue") 
    return 0 

if __name__ == "__main__" : 
    sys.exit(main()) 

Sie können sehen, Wie 'config.TestClass.TestClass.add_key' ist viel ausführlicher als normale Klassenmethodenaufrufe. Gibt es eine Möglichkeit, es kürzer zu machen? Vielleicht 'TestClass.add_key'? Definiere ich etwas auf eine seltsame Art und Weise (Fall der Klasse, die mit dem Namen der Python-Datei übereinstimmt?)

Antwort

13
from config.TestClass import TestClass 
TestClass.add_key("mykey", "newvalue") 
+0

MUAH! Brillant. Vielen Dank. – Kieveli

Verwandte Themen