首页 > 解决方案 > 为什么函数没有参数运行?

问题描述

我目前正在学习python中的curses,我在网上发现了这段让我很困惑的代码。

import curses

def draw_menu(stdscr):
    # do stuff
    # if you want more code just let me know


def main():
    curses.wrapper(draw_menu)


if __name__ == "__main__":
    main()

当我运行它时,我没有收到预期的missing 1 required positional argument错误,因为行中没有传递任何参数curses.wrapper(draw_menu)。这是curses一回事吗?任何帮助是极大的赞赏。

标签: pythoncurses

解决方案


函数是一种数据类型,就像字符串、整数等一样。

def my_function(txt):
  print(txt)

这里type(my_function) # => <class 'function'>

当您使用括号调用函数时,您会调用函数内部的代码:my_function('hello') # => prints hello

在此之前,您可以完美地将函数作为参数传递给另一个函数。最后一个可以调用你传递的那个,给它一些参数。

就像您的情况一样,我猜想这curses.wrapper()会创建一个屏幕界面,并将其作为参数传递给您的draw_menu()函数。您可能可以使用该屏幕对象来构建您的诅咒应用程序。

看到这个:Python函数作为函数参数?


推荐阅读