Heim  >  Artikel  >  Backend-Entwicklung  >  Teilen Sie Beispiele für die Verwendung von Zeichenfolgen zum Aufrufen von Funktionen und Methoden in Python

Teilen Sie Beispiele für die Verwendung von Zeichenfolgen zum Aufrufen von Funktionen und Methoden in Python

黄舟
黄舟Original
2017-08-04 10:42:161720Durchsuche

Strings sind ein häufig verwendeter Datentyp in Python, und es ist sehr wichtig, die gängigen Methoden von Strings zu beherrschen. Der folgende Artikel führt Sie hauptsächlich in die relevanten Informationen zum Aufrufen von Funktionen oder Methoden über Zeichenfolgen in Python ein. Lassen Sie uns gemeinsam einen Blick darauf werfen.

Vorwort

Dieser Artikel führt Sie hauptsächlich in den relevanten Inhalt zum Aufrufen von Funktionen oder Methoden mithilfe von Zeichenfolgen in Python ein und stellt ihn als Referenz zur Verfügung und lernen, werfen wir einen Blick auf die ausführliche Einführung:

Schauen wir uns zunächst ein Beispiel an:


>>> def foo():
    print "foo"

>>> def bar():
    print "bar"

>>> func_list = ["foo","bar"]
>>> for func in func_list:
    func()
TypeError: 'str' object is not callable

Wir Ich möchte die Ausführungslistenfunktion in der Liste durchlaufen, aber der aus der Liste erhaltene Funktionsname ist eine Zeichenfolge, sodass ein Typfehler angezeigt wird und das Zeichenfolgenobjekt nicht aufgerufen werden kann. Was wäre, wenn wir möchten, dass der String zu einem aufrufbaren Objekt wird? Oder möchten Sie Modulattribute und Klassenattribute über Variablen aufrufen?

Es gibt drei Möglichkeiten, dies zu erreichen.

eval()


>>> for func in func_list:
    eval(func)()
foo
bar

eval() wird normalerweise zum Ausführen verwendet a Ein Zeichenfolgenausdruck, der den Wert des Ausdrucks zurückgibt. Hier wandelt es den String in die entsprechende Funktion um. eval() ist mächtig, aber gefährlich (eval ist böse) und wird nicht empfohlen.

locals() und globals()


>>> for func in func_list:
    locals()[func]()
foo
bar
>>> for func in func_list:
    globals()[func]()
foo
bar

locals() und globals() sind in Python Zwei integrierte Funktionen, die Wörterbuchzugriff auf lokale und globale Variablen ermöglichen.

getattr()

getattr() ist eine integrierte Funktion von Python, getattr(object,name) entspricht object.name, aber hier name Kann eine Variable sein.

Gibt die bar-Methode des foo-Moduls zurück


>>> import foo
>>> getattr(foo, 'bar')()

Gibt die Attribute der Foo-Klasse zurück


>>> class Foo:
  def do_foo(self):
    ...
  def do_bar(self):
    ...
>>> f = getattr(foo_instance, 'do_' + opname)
>>> f()

Zusammenfassung

Das obige ist der detaillierte Inhalt vonTeilen Sie Beispiele für die Verwendung von Zeichenfolgen zum Aufrufen von Funktionen und Methoden in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Python-LernregelnNächster Artikel:Python-Lernregeln