【问题标题】:What types are python xmlrpc objects?python xmlrpc 对象有哪些类型?
【发布时间】: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


【解决方案1】:

如果您要求对 Python 对象进行任意检查,请使用“检查” Python模块:

http://www.ibm.com/developerworks/library/l-pyint/index.html

也在检查

>> obj.__class__

或

>> obj.__class__.__bases__

让您可以访问基类。

【讨论】:

  • 请查看更新后的问题。但我想使用obj.__class__ 是我问题的答案。谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多