2016-10-26 2 views
1

Ich möchte einen Klassennamen als Konstante an eine Methode übergeben.Python: Übergeben einer Konstante als Methodenparameter

Beispiel:

def foo(Bar): 
    # ... 

Schließlich möchte ich Bar als Klassennamen zu verwenden, um der Lage sein, in Verfahren foo

Ist das möglich zu tun?

+0

Normalerweise gibt es keine Notwendigkeit, eine Konstante als Argument an eine Funktion zu übergeben. –

+0

Was meinen Sie mit * "Übergeben Sie einen Klassennamen an eine Methode als Konstante" *? Und auch durch * "benutze Bar als Klassenname in Methode foo" *? –

Antwort

1

Ja, Sie können Klasse als Argument übergeben, um zu funktionieren. Unten ist das Beispiel, um es zu beweisen.

class Bar(): 
    @staticmethod # created staticmethod; can be call without creating the object 
    def my_print(): 
     print 'Hello, I am class function' 

def foo(my_class): 
    my_class().my_print() # call my_print() of the object passed 

foo(Bar) # Pass class "Bar" as argument to "foo()" 
# prints: Hello, I am class function 
0

Schauen Sie sich diese

class Bar(): 
    pass 

def foo(param): 
    print "class_name is {}".format(param.__name__) #prints class name 

foo(Bar) 
Verwandte Themen