我的计划理念:
我有一本字典:
options = { 'string' : select_fun(function pointer),
'float' : select_fun(function pointer),
'double' : select_fun(function pointer)
}
无论哪种类型都会调用单个函数select_fun(function pointer)
。
在select_fun(function pointer)
中,我将拥有float、double等的diff函数。
根据函数指针,将调用指定的函数。
我不知道我的编程知识是好是坏,但我仍然需要帮助。
您可以使用^{} built-in function 来检测函数的类型。
例如,如果要检查某个名称是否包含字符串数据,可以执行以下操作:
所以在你的情况下,你可以这样做:
然后你可以这样使用它:
我附近没有python解释器,也没有用python编写太多程序,所以可能会有一些错误,但您应该明白这一点。
编辑:根据@Adam的建议,您可以直接检查内置的类型常量,因此更好的方法是:
由于键本身与type()函数的值相当,您可以这样做:
这是更优雅的:-)保存一些错误检查。
编辑:对于ctypes支持,经过一些修改后,我发现ctypes[type_name_here]实际上是作为类实现的。所以这个方法仍然有效,您只需要使用ctypes.c_xxx类型类。
看看你的例子,在我看来,这是一个直接翻译成Python的C过程。
因此,我认为可能存在一些设计问题,因为在Python中,通常不关心对象的类型,而只关心可以发送给它的消息。
当然,这种方法有很多例外,但在这种情况下,我还是会尝试封装一些多态性;例如
等等
同样,所有这些都是假设您正在从过程语言转换为python;如果不是这样,请放弃我的答案:-)
你能更具体地说明你想做什么吗?在Python中,您不必做任何特殊的事情来获取函数指针——您可以像普通对象一样传递函数:
相关问题 更多 >
编程相关推荐