在 Python 中制作带有参数的一流函数 [duplicate]

Making a first-class Function with arguments in Python [duplicate]

提问人:Stepa1411 提问时间:7/31/2022 更新时间:7/31/2022 访问量:59

问:

我的问题很简单:我想在 python 中制作一个包含一些参数的一流函数。 但问题是,要分配它,你需要调用它,这可能会有问题

def print_double(num):
    print(num*2)
a = print_double(4)

我不想在分配它时调用它,我想在需要它时调用它。像这样:

a()
>>> 8

有什么办法可以做到吗?

Python 第一类函数

评论

0赞 Bohdan 7/31/2022
你能澄清一下你的问题吗?将您的 print_double() 存储在一个单独的模块中并执行“模块导入print_double作为”有什么问题?
0赞 wjandrea 7/31/2022
所有 Python 函数都是一流的。这是错误的术语。看起来你想编写一个返回另一个函数(闭包)的函数,或者你实际上正在寻找一个部分函数——这并不完全清楚。
0赞 wjandrea 7/31/2022
更好的链接:部分

答:

2赞 OneCricketeer 7/31/2022 #1

正如所写的那样,您的代码会抛出一个错误 - NoneType 不可调用。

要完成您所展示的内容,您需要对函数进行整理

def print_double(num):
    def inner():
       print(num*2)
    return inner 

a = print_double(4)
a()  # 8