Ich bin neu in Python, aber ich habe mich ziemlich schnell mit den Grundlagen vertraut gemacht und beschlossen, zu versuchen, ein Programm zu erstellen, während ich noch lerne, da ich am besten lerne, indem ich tatsächlich Dinge tue.
Also mache ich ein Programm in Python, das Polynome hinzufügt, und ich muss mit dem Befehl isdigit()
sehen, ob ein Zeichen aus dem Parser numerisch ist.
Anstatt ständig isdigit()
in meinen Code wie n.isdigit()
eingeben zu müssen, möchte ich ihn einer Variablen t = 'isdigit()'
zuweisen und dann n.t
eingeben. Dies funktioniert nicht. Gibt es also eine Alternative, nicht den gesamten Befehl einzugeben?
3 Antworten
Während Sie Ihren Code mit etwas wie t = str.isdigit
beginnen und dann t(n)
überprüfen können (Sie können ihn nicht zu einem Attribut von Zeichenfolgen machen, weil Sie die Attributsuche von außen nicht abfangen können), ist dies tatsächlich ein ziemlich schlechte Idee. Während es schneller zu tippen ist, ist es wesentlich schwieriger zu lesen. Dies wird Sie (oder irgendjemanden anderen) in ein paar Wochen bei der Arbeit am Code beißen. Dies liegt nicht daran, dass das Abstrahieren über unnötige Details schlecht ist (es ist nicht so), dieses Snippet ist einfach nicht kompliziert genug, um von einer Abstraktion zu profitieren. Jeder lesbare Name hierfür ist mindestens so lang wie isidigt
, sodass Sie keine Lesbarkeit gewinnen können.
Sie können eine Funktion erstellen:
def t(n):
if n.isdigit():
return True
else:
return False
a = "a5b"
print t(a[1])
Ich weiß nicht, ob du danach gesucht hast.
Sie müssten eine benutzerdefinierte Funktion oder ein Lambda erstellen, um die isdigit()
-Methode für Sie aufzurufen, vorausgesetzt, eine Instanz:
t = lambda n: n.isdigit()
# ...
t(n) # returns the result of `n.isdigit()`
Oder Sie können einen Verweis auf die Klassenmethode speichern:
t = str.isdigit
# ...
t(n) # returns the result of `str.isdigit(n)`
Da n
vom Typ str
ist.
Die Syntax n.t
immer sucht t
als Attribut für n
, und die lokale Variable t
wird dafür nie herangezogen.
Verwandte Fragen
Neue Fragen
python
Python ist eine dynamisch typisierte Mehrzweck-Programmiersprache mit mehreren Paradigmen. Es wurde entwickelt, um schnell zu lernen, zu verstehen, zu verwenden und eine saubere und einheitliche Syntax durchzusetzen. Bitte beachten Sie, dass Python 2 ab dem 01.01.2020 offiziell nicht mehr unterstützt wird. Fügen Sie für versionenspezifische Python-Fragen das Tag [python-2.7] oder [python-3.x] hinzu. Wenn Sie eine Python-Variante (z. B. Jython, PyPy) oder eine Bibliothek (z. B. Pandas und NumPy) verwenden, fügen Sie diese bitte in die Tags ein.