代码:
B.py - B
(可执行)
Get the object here and call it's functions
A.py - A
(可执行)
from subprocess import Popen
class x():
def __init__():
pass
def A1():
------
def A2():
------
<---------->
def AN():
-------
object_x = x()
Popen(['B','-class_args', 'x'])
我有两个python可执行文件。我在第一个可执行文件中定义了一个类。我已经创建了一个对象。我想使用Popen
将该对象传递给第二个可执行文件。和Popen
一样,我只能传递字符串,是否可以传递一个对象?
答案 0 :(得分:3)
UNIX命令行的核心是一个C字符串列表(也就是说,字符串在它们在内存中的起始位置之后的第一个NUL值处终止)。
您无法传递无法转换为NUL分隔字符串的内容。
这意味着您可能pickle
一个Python对象和base64
- 对结果进行编码(如果您在stdin上传递序列化对象,则可以避免使用base64编码开销,这样就可以使用NUL),并传递那个,base64-decoding并在以后取消它 - 但在命令行中,它必须是一个没有NUL字符的字符串。