【发布时间】:2012-12-26 23:46:48
【问题描述】:
我定义了一个 python xmlrpc 服务器如下(仅用于解释的近似示例):
from SimpleXMLRPCServer import SimpleXMLRPCServer
server = SimpleXMLRPCServer(('localhost', 8000))
server.register_function(foo, "serial.send")
server.serve_forever()
然后我可以使用xmlrpc 客户端,如下所示
import xmlrpclib
device = xmlrpclib.ServerProxy("http://localhost:8000/RPC2")
device.serial.send(...)
在这里我可以检查device 是否是xmlrpclib.ServerProxy 的实例
isinstance(device, xmlrpclib.ServerProxy)
但是device.serial 是什么?我想检查device.serial 是否属于xmlrpc,而不是例如serial、socket 或其他。
这是我要检查的具体示例:
def foo(x):
if isinstance(x, ...):
print("xmlrpc access")
else:
print("direct access")
foo(device.serial) # expected output: 'xmlrpc access'
foo(serial.Serial(..)) # expected output: 'direct access'
foo(socket.Socket(...)) # expected outcome: 'direct access'
【问题讨论】:
-
似乎您完全不了解 XMLRPC 实际在做什么。为什么要在客户端以透明的方式访问服务器端数据结构和类型??
-
这还不够
type(object_name)??
标签: python types python-2.7 xml-rpc