在Python中向动态方法调用添加类型暗示

在Python中向动态方法调用添加类型暗示,python,python-3.x,type-hinting,python-typing,Python,Python 3.x,Type Hinting,Python Typing,如何键入动态调用的方法 例如: ABBase类: def get_processor_func(self,name:str):#??如何输入退货? func_name=f“进程{name}” 返回getattr(self,func_name,None) def过程_全部(自身): 对于['1','2','3']中的p: func=self.get\u processor\u func(p) 如果func: 打印(func()) 类别ProcessA(缩写): def过程_1(自身)->int:

如何键入动态调用的方法

例如:


ABBase类:
def get_processor_func(self,name:str):#??如何输入退货?
func_name=f“进程{name}”
返回getattr(self,func_name,None)
def过程_全部(自身):
对于['1','2','3']中的p:
func=self.get\u processor\u func(p)
如果func:
打印(func())
类别ProcessA(缩写):
def过程_1(自身)->int:
返回111
def过程_2(自)->int:
返回222
进程B类(缩写):
def过程_1(自身)->int:
返回111
def过程_3(自)->int:
返回333
a=进程a()
a、 进程_all()
打印('---')
b=进程b()
b、 进程_all()
是否可以将类型注释添加到此构造中?
如何键入
get\u processor\u func
方法或整个类?Python 3.8对我来说已经足够了。

因为所有可能的方法都具有相同的类型,所以可以静态地指定该类型

from typing import Callable, Optional


class ABBase:
    def get_processor_func(self, name: str) -> Optional[Callable[[],int]]:
        func_name = f"process_{name}"
        return getattr(self, func_name, None)

    def process_all(self):
        for p in ['1', '2', '3']:
            func = self.get_processor_func(p)
            if func:
                print(func())

由于所有可能的方法都具有相同的类型,因此可以静态地指定该类型

from typing import Callable, Optional


class ABBase:
    def get_processor_func(self, name: str) -> Optional[Callable[[],int]]:
        func_name = f"process_{name}"
        return getattr(self, func_name, None)

    def process_all(self):
        for p in ['1', '2', '3']:
            func = self.get_processor_func(p)
            if func:
                print(func())

你试过什么吗?返回类型是
None
或callable?您尝试过什么吗?返回类型是
None
或callable?好的,谢谢,但我想这样做:
def get\u processor\u func(self,name:str)->Optional[“ABBase.process”{name}]:
可能吗?不,因为
ABBase.process…
不是类型,这是一个名称。好的,谢谢,但我想这样想:
def get\u processor\u func(self,name:str)->可选[“ABBase.process”{name}]:
可能吗?不,因为
ABBase.process…
不是类型,而是名称。