#python #function
#python #функция
Вопрос:
Если у меня есть много переменных, которые я хочу инициализировать одним и тем же значением, я использую:
a = b = c = ""
Существует ли аналогичное сокращение для определения многих функций, которые выполняют одно и то же? То есть ни одно из следующих действий:
def x() = y() = z():
def x() = def y() = def z():
Ответ №1:
Вы можете просто назначать функции так, как вы бы назначали переменные.
def z():
whatever
x = y = z
Вы не можете сделать это в одной строке, если хотите использовать def
, но если вы можете превратить это в lambda
, вы можете сделать однострочный:
x = y = z = lambda foo: bar()
Ответ №2:
Как насчет:
def z():
pass
x = y = z
Комментарии:
1. Дорогой Том: Я думаю, вы неправильно истолковали вопрос. Например, вы не читали вопрос. С любовью, Сантьяго.
2. На самом деле, что-то странное произошло в моем форматировании, и вторая часть моего ответа была обрезана. Ура, что испортили мой первый ответ!
3. Хаха, добро пожаловать в SO! возможно, ваши будущие ответы ответят на этот вопрос! 😛
Ответ №3:
Хм … функции тоже являются объектами, так что вы можете сделать это:
def foo():
pass
bar = foo
Как вы можете видеть, синтаксис тот же.
Зачем вам ЭТО НУЖНО, черт возьми, если я знаю.
Ответ №4:
вы можете сделать что-то вроде этого:
def X():
pass
Y = Z = X
Комментарии:
1. Имена функций должны быть в нижнем регистре; соответствующий регистр предназначен для имен классов.