元のメソッドと残りの引数を取るラッパー メソッドにリダイレクトする約 20 のメソッドがあります。
class my_socket(parent):
def _in(self, method, *args, **kwargs):
# do funky stuff
def recv(self, *args, **kwargs):
return self._in(super().recv, *args, **kwargs)
def recv_into(self, *args, **kwargs):
return self._in(super().recv_into, *args, **kwargs)
# and so on...
これらのメソッドをプログラムでさらに追加するにはどうすればよいですか? これは、すべてが間違っているように見える前に私が得た限りです。
for method in 'recv', 'recvfrom', 'recvfrom_into', 'recv_into', ...:
setattr(my_socket, method, ???)
クラス定義内で割り当てるか、より自然に感じる何か他のものでこれを行うことはできますか?
class my_socket(parent):
def makes_recv_methods(name):
# wraps call to name
def recv_meh = makes_recv_methods('recv_meh')
__get__
からの魔法の機能よりも、可能な場合は友人を使用したいと思いtypes
ます。