- Регистрация
- 1 Мар 2015
- Сообщения
- 1,481
- Баллы
- 155
*Memos:
- explains variable assignment.
- explains iterable unpacking in variable assignment.
- explains parameters and arguments.
- explains in function.
- explains in function.
- explains and together in function.
Lambda:
- is the function which can be stored in a variable and parameter.
- is an expression.
- cannot be used with pass.
- is almost same as a normal function except these above.
- You can see
You can use Lambda as shown below:
# Equivalent
v1 = lambda: 2 # def func(): return 2
v1 = lambda x: x # def func(x): return x
v1 = lambda x, y: x+y # def func(x, y): return x+y
v1 = lambda x, y=3: x+y # def func(x, y=3): return x+y
v1 = lambda x=2, y=3: x+y # def func(x=2, y=3): return x+y
v1 = lambda x=2, /, y=3, *, z=4: x+y+z # def func(x=2, /, y=3, *, z=4):
# No error # return x+y+z
v1 = v2 = lambda: 2
v1, v2 = [lambda: 2, lambda: 3]
# No error
v1 = lambda: pass
v1 = def func() return 2
v1 = func() return 2
# SyntaxError: invalid syntax
v1 = lambda: 2
print(v1()) # 2
v1 = lambda x: x
print(v1(2)) # 2
print(v1(x=2)) # 2
v1 = lambda x, y: x+y
print(v1(2, 3)) # 5
print(v1(2, y=3)) # 5
print(v1(x=2, y=3)) # 5
print(v1(y=3, x=2)) # 5
v1 = lambda x=2, y=3: x+y
print(v1(6)) # 9
print(v1(x=6)) # 9
print(v1(y=5)) # 7
print(v1(6, 5)) # 11
print(v1(6, y=5)) # 11
print(v1(x=6, y=5)) # 11
print(v1(y=5, x=6)) # 11
v1 = lambda x=2, /, y=3, *, z=4: x+y+z
print(v1(6, 5, z=4)) # 15
print(v1(6, y=5, z=4)) # 15
print(v1(6, z=4, y=5)) # 15
v1 = v2 = lambda: 2
print(v1(), v2()) # 2 2
v1, v2 = [lambda: 2, lambda: 3]
print(v1(), v2()) # 2 3
def func(x=lambda: 2):
print(x())
func() # 2
func(lambda: 4) # 4
func(x=lambda: 4) # 4