Python Lambda 函数的空参数

问题描述 投票:0回答:4

是否可以在Python中编写一个不需要传递任何参数的lambda函数?例如,有没有办法翻译这个函数:

def file_opener():
    f = open('filename.txt').read()
    return f

或任何其他没有传递输入的函数 变成 lambda 表达式?

python lambda
4个回答
11
投票

你当然可以做到..

x = lambda : 6
print(x())  # prints -> 6

但你可能不应该这样做。一旦您觉得需要将函数绑定到变量名,您应该像在示例中那样走很长的路(

def ..
)。


3
投票

尝试这个(推荐,因为不存在硬编码):

file = lambda f: open(f).read()

print (file('open.txt'))

如果您不想将文件名作为参数传递,请使用:

f = lambda: open('open.txt').read()

print (f())

1
投票

试试吧!

>>> open('filename.txt', 'w').write('this is filename.txt contents')
29
>>> def call_this(fctn):
...     return fctn()
... 
>>> print(call_this(lambda: open('filename.txt').read()))
this is filename.txt contents

有效


0
投票

问题:Python Lambda 函数的空参数

def file_opener():
    f = open('filename.txt').read()
    return f

🧸💬 从问题来看,可以使用 lambda 函数执行此任务。

示例代码

filename = "C:\\temp\\python\\actual_data.txt";
content = map(lambda x: x.upper(), open (filename, "r").readlines() );
content = "".join(list(content));
print( content )

屏幕截图 Screen Shot

© www.soinside.com 2019 - 2024. All rights reserved.