XCTestCase - тесты пользовательского интерфейса iOS - работа с UITableViews со многими ячейками

Для этого вам нужно будет изменить функцию __repr__ для данного класса, которая в этом случае является встроенным классом функций (types.FunctionType). Поскольку в Python вы не можете редактировать встроенные классы, только подклассировать их, вы не можете.

Однако есть два подхода, которым вы могли бы следовать:

  1. Обернуть некоторые функции в виде kwatford Предлагаемый
  2. Создайте свой собственный протокол представления с помощью собственной функции воспроизведения. Например, вы можете определить функцию myrepr, которая сначала ищет методы __myrepr__, которую вы не можете добавить в класс функций, но вы можете добавить ее к отдельным объектам функции, как вы предлагаете (а также к вашим пользовательским классам и объектам) , затем по умолчанию будет указано, если __myrepr__ не найден. Возможная реализация для этого будет:
    def myrepr(x):
      try:
        x.__myrepr__
      except AttributeError:
        return repr(x)
      else:
        return x.__myrepr__()
    
    Затем вы можете определить методы __myrepr__ и использовать функцию myrepr. Кроме того, вы также можете __builtins__.repr = myrepr сделать свою функцию по умолчанию repr и продолжать использовать repr. Этот подход в конечном итоге сделает именно то, что вы хотите, хотя редактирование __builtins__ может не всегда быть желательным.
14
задан Senseful 1 January 2016 в 05:15
поделиться