在Python中通过网络发送函数指针

4 投票
2 回答
1311 浏览
提问于 2025-04-17 17:37

有没有可能在Python中通过网络发送一个函数指针,让它在另一台机器上运行?

假设我有一个想要运行的函数:

def myFunc():
  ...

我能不能把myFunc通过函数指针发送到另一台机器,还是说这个函数指针只能在本地使用?如果不行,我还有什么其他选择?是发送Python文件吗?

我对Python中的网络工作原理不感兴趣,因为那部分已经完全实现了。

2 个回答

1

一开始可能不太简单。你需要在远程机器上有一个.py文件。不过,你可以使用Python fabric来实现这个功能。

0

你有没有想过把你的函数“腌制”一下,然后通过网络发送呢?

示例(服务器端):

import pickle

def test1():        #Function to be send
    return True


with open('data.pickle', 'wb') as f:    #On server you pickling function
    pickle.dump(test1.__code__, f)

示例(客户端):

import pickle
import types

with open('data.pickle', 'rb') as f:    #On client you load and unpickle function
    code = pickle.load(f)

test2 = types.FunctionType(code, globals())


print(test2())    #Result will be True

注意:发送代码通过网络时,要注意可能出现的安全问题。

撰写回答