Wenn Sie ein kleines Skript schreiben, bauen Sie einen String zusammen und führen ihn aus, oder?
So etwas in der Art (ich benutze nicht "shutil", weil es ein Beispiel ist)
os.system('mv %(src)s %(dst)s' % locals())
So ein Typ
os.system('ssh %(user)s@%(host)s -p %(port)s hostname' % locals())
Haben Sie dies jemals getan, wenn Sie die zusammengesetzte Zeichenfolge überprüfen möchten? Es ist ein Ärger
# os.system('mv %(src)s %(dst)s' % locals())
print 'mv %(src)s %(dst)s' % locals()
Wenn Sie so debuggen möchten, ist es einfacher, "os.system" zu ersetzen
def out(s):
print s
os.system = out
os.system('mv %(src)s %(dst)s' % locals())
Jetzt, da os.system
tatsächlich print
ist, wird die zusammengesetzte Zeichenfolge beim Ausführen standardmäßig ausgegeben und Sie können sie problemlos debuggen.
Übrigens verwendet die Python2-Serie "def", weil "print" eine Anweisung ist, aber die Python3-Serie ist einfacher, weil "print" ein Ausdruck ist.
os.system = print
os.system('mv %(src)s %(dst)s' % locals())
Wenn es sich um eine erstklassige Objektsprache handelt, wird sie angewendet, daher ist es möglicherweise gut, sich daran zu erinnern
Recommended Posts