是否有像下面那样创建Callable类型的Pythonic方法(TypeScript和C#示例)?
打字稿:
export type MyHandler = (paramOne: ClassOne, num: int) => null;
C#:
public delegate void MyHandler(ClassOne paramOne, int num);
的Python:
MyHandler = Callable[[ClassOne, int], None] # No lint errors...
虽然我在PyCharm中没有得到任何lint错误;由于不 -Pythonic的感觉,我还没有打扰我的代码片段。如果这将是我自己的私人消费代码,我不认为我会打扰创建这种类型,但它会成为库的一部分,所以我觉得更有义务创建类型。
在使用中,此类型将显示为:
class SomeClass(ProbablyAnABC):
# __init__ where self._handlers is created
def register_handler(self, handler: MyHandler) -> None:
self._handlers.append(handler)