-1

私は次のようにPythonxmlrpcサーバーを定義します(説明のみを目的としたおおよその例):

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(...)

ここで、 withdeviceのインスタンスかどうかを確認できますxmlrpclib.ServerProxy

isinstance(device, xmlrpclib.ServerProxy)

しかし、何device.serialですか?device.serialが に属していることを確認したいのですがxmlrpc、たとえば、 などではありませserialsocket

ここに私が確認したいものの具体的な例があります:

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'
4

1 に答える 1

0

Python オブジェクトの任意の検査が必要な場合は、Python の「検査」モジュールを使用します。

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

もチェック

>> obj.__class__

また

>> obj.__class__.__bases__

基本クラスにアクセスできます。

于 2013-01-12T14:49:51.557 に答える