繁体   English   中英

Python类型用curses提示

[英]Python Type hinting with curses

我试图弄清楚在这个函数的顶部放入我的类型注释的内容。

我有以下简单的例子:

import curses

def main(stdscr):
    stdscr.clear()

    stdscr.addstr(2, 0, "What is the type of stdscr?")
    stdscr.addstr(5, 0, "It is: {}".format(type(stdscr)))

    stdscr.refresh()
    stdscr.getkey()

curses.wrapper(main)

这将返回<type '_curses.curses window'> 这似乎不适用于类型提示,因为它有一个空格。 预期的结果将是 WindowObject列出 WindowObject 我在curses模块本身找不到WindowObject的路径。 编辑:这里的文档不正确。

如何使用准确的类型注释编写main?

不幸的是,curses模块似乎没有在typeshed中完全输入。 几个月前已完成一些初步工作 ,但Windows对象尚未添加。 你可以在这里这里检查Python 3'curses'存根。

目前,存根默认键入curses.wrapper

def wrapper(func, *args, **kwds): ...

......反过来,相当于:

def wrapper(func: Callable[..., Any], *args: Any, **kwds: Any): ...

因此,这意味着除了Any之外,目前还没有合适的类型分配给main函数的参数。

也就是说,如果你想要它,你可能会贡献一些存根来自己完成curses模块! 看起来Window对象看起来并不那么复杂,并且希望打字相对简单。

如果curses模块本身不存在,那么主要的复杂因素可能是确定应该从哪里导入'Window'对象。 您可能想要在typing模块本身中粘贴“Windows”对象,就像在typing typing.re.Patterntyping.re.Match

你的问题是你的类型不是对象的真实类型,方法类型()总是正确地告诉你类型,所以确定文档。 是错的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM