Python 3 Тип подсказка для динамических атрибутов через __getAttr__ [дубликат]Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Python 3 Тип подсказка для динамических атрибутов через __getAttr__ [дубликат]

Сообщение Anonymous »

Чтобы обернуть все вызовы функций модуля и получить доступ к нему с помощью метода __getattr __ обертки __ , я попытался использовать библиотеку Typing , но я не смог понять, как сделать это правильно.

Код: Выделить всё

import interface

"""
>>> print(interface.__all__)
['execute_foo_operation', ...]
"""

class InterfaceWrapper(object):
def __init__(self, job_queue):
self.job_queue = job_queue
self.callbacks = []

def __getattr__(self, name):
func = getattr(interface, name)
return functools.partial(self._wrapper, func)

def _wrapper(self, func, *args, **kwargs):
job = func(*args, **kwargs)
self.job_queue.push(job)
for callback in self.callbacks:
callback(job)
return job

def register_callback(self, callback):
self.callbacks.append(callback)

class Operator(object):
def __init__(self, job_queue):
self.interface = InterfaceWrapper(job_queue)

def after_queuing(self):
# do something

def execute_foo_operation(self):
self.interface.register_callback(self.after_queuing)
self.interface.execute_foo_operation()  # unresolved attribute

Может ли кто -нибудь направить мой код для правильной работы?

Подробнее здесь: https://stackoverflow.com/questions/557 ... gh-getattr
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Тип подсказка возвращаемой формы массива с использованием атрибутов класса
    Anonymous » » в форуме Python
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous
  • Тип подсказка возвращаемой формы массива с использованием атрибутов класса
    Anonymous » » в форуме Python
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • Python тип подсказка типа "любой тип"?
    Anonymous » » в форуме Python
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • Java-эквивалент getattr Python?
    Anonymous » » в форуме JAVA
    0 Ответы
    17 Просмотры
    Последнее сообщение Anonymous
  • Как избежать setattr (и getattr) при использовании Python? И нужно ли избегать
    Anonymous » » в форуме Python
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»