Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/162.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在运行时定义python函数_Python - Fatal编程技术网

在运行时定义python函数

在运行时定义python函数,python,Python,我想使用以下模板在运行中创建python函数: def x(发送方,数据): r=b“ r+=发送方。发送类型0(数据[0]) r+=发送方。发送类型1(数据[1]) r+=发送方。发送类型2(数据[2]) ... r+=发送方。发送类型n(数据[n]) 返回r 我想从一个数组中创建许多这样的函数,该数组将类型数据保存为二维数组。 我可以在运行时生成简单的函数,但我只希望在生成时运行for语句,而不是在每次调用函数时运行。 如何实现这一点?您可以使用getattr动态键入属性 def x(se

我想使用以下模板在运行中创建python函数:

def x(发送方,数据):
r=b“
r+=发送方。发送类型0(数据[0])
r+=发送方。发送类型1(数据[1])
r+=发送方。发送类型2(数据[2])
...
r+=发送方。发送类型n(数据[n])
返回r
我想从一个数组中创建许多这样的函数,该数组将类型数据保存为二维数组。 我可以在运行时生成简单的函数,但我只希望在生成时运行for语句,而不是在每次调用函数时运行。
如何实现这一点?

您可以使用getattr动态键入属性

def x(sender,data):
    return b"".join(
        getattr(sender, "send_type"+i)(data[i])
        for i in xrange(len(data))
    )

我不认为预先编译函数会带来多大的性能优势,假设这是可能的…

您可以使用getattr动态键入属性

def x(sender,data):
    return b"".join(
        getattr(sender, "send_type"+i)(data[i])
        for i in xrange(len(data))
    )

我不认为预先编译函数会带来多大的性能优势,假设这是可能的…

您能提供更多详细信息吗。发送者是什么类型的?字节字符串如何成为函数?我不以你为例。你能提供更多的细节吗。发送者是什么类型的?字节字符串如何成为函数?我没有效仿你的榜样,所以没有什么好办法来满足我的要求。我对Python感到失望…:出于兴趣,哪种语言支持这一点?和我的解决方案相比,它有什么优势呢?就是说,没有什么特别的解决方案来做我想做的事情。我对Python感到失望…:出于兴趣,哪种语言支持这一点?与我的解决方案相比,它有什么优势?