[PYTHON] Schreiben wir __str__ der Klasse einfacher mit Lambda!

Hallo Lambda-Fan, du weißt nicht viel in der Pythonista! Ich denke übrigens, Sie verwenden __str__ oder __unicode__, um den Namen der Klasse anzuzeigen. Insbesondere denke ich, dass wir die folgende Klassendeklaration abgeben.

python



class NotLambda(object):

    name = u'not lambda'

    def __str__(self):
        return '<%s>' % self.name

Aber halten Sie diese Erklärung nicht für etwas überflüssig? Besonders zurück. Wahrscheinlich ist es in den meisten Fällen eine Erklärung, dass nur eine Zeile ausreicht.

Übrigens war Lambda für eine solche Erklärung günstig. Mit Lambda können Sie wie folgt schreiben.

python


class UseLambda(object):

    name = u'lambda'
    __str__ = lambda self: '<%s>' % self.name

Ich denke, dass Lambda das folgende Verhalten hat, wenn es in def konvertiert wird.

python


def not_lambda(hoge):
    return hoge + 1

test_def = not_lambda
print test_def(1)

Mit anderen Worten, indem Sie eine Funktion erstellen und mit dieser Variablen verbinden, können Sie diese Variable als Funktion verwenden. Wenn Sie es in Lambda ändern, wird es unten sein.

python


test_lambda = lambda hoge: hoge + 1
print test_lambda(1)

Also könnte str in Lambda definiert werden. Um ehrlich zu sein, fühlt es sich schlecht an :).

Recommended Posts

Schreiben wir __str__ der Klasse einfacher mit Lambda!
Schreiben Sie einfach if-elif mit Lambda
Lassen Sie uns mit Google Colaboratory ganz einfach ein mathematisches GIF erstellen