3

xmlrpclib.ServerProxy() でメソッドのリストを取得できません。dir(); を使用してみました。ただし、インタープリターはエラーを返し続けます。

これは私が試したものです:

>>>s = xmlrpclib.ServerProxy("http://192.168.1.72:8888")
>>>dir(s)

そして、私はこのエラーを受け取ります:

Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.7/xmlrpclib.py", line 1224, in __call__
 return self.__send(self.__name, args)
File "/usr/lib/python2.7/xmlrpclib.py", line 1578, in __request
 verbose=self.__verbose
File "/usr/lib/python2.7/xmlrpclib.py", line 1264, in request
 return self.single_request(host, handler, request_body, verbose)
File "/usr/lib/python2.7/xmlrpclib.py", line 1297, in single_request
 return self.parse_response(response)
File "/usr/lib/python2.7/xmlrpclib.py", line 1473, in parse_response
 return u.close()
File "/usr/lib/python2.7/xmlrpclib.py", line 793, in close
 raise Fault(**self._stack[0])

xmlrpclib.Fault: <Fault 1: '<type \'exceptions.Exception\'>:method "__dir__" is not supported'>

Dir() はサポートされていません。メソッドのリストを取得するにはどうすればよいですか?

4

2 に答える 2

1
>>> import xmlrpclib
>>> dir (xmlrpclib.ServerProxy)
['_ServerProxy__close', '_ServerProxy__request', '__call__', '__doc__', '__getattr__', '__init__', '__module__', '__repr__', '__str__']

これはあなたが求めているものですか?

オブジェクトのインスタンスを渡すときのドキュメントによると、呼び出されたオブジェクト内のメソッドを探し、オブジェクトでそのメソッドを呼び出した結果を返します。は を実装していないため、オブジェクトでそれを呼び出して、その属性のリストを取得する必要があります。dir__dir__ServerProxy__dir__class

編集:実際にはリモートシステムでメソッドを探しているので、この答えは役に立たないものになっていますが、この質問に出くわした人の参考としてここに残しておくと思います.

于 2013-06-27T15:30:33.923 に答える