在Python中通过网络发送函数指针
有没有可能在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
注意:发送代码通过网络时,要注意可能出现的安全问题。