Приведение карт Groovy в Python - PullRequest
1 голос
/ 23 февраля 2010

Я относительный новичок в Python, и мне просто интересно, есть ли какой-нибудь эквивалент функции приведения к карте, доступной в groovy.

Для контекста я пишу модульный тест и хочу смоделировать класс с простым интерфейсом двух методов, в groovy я бы сделал следующее:

mock = [apply:{value -> return value*2 }, isValid:{return true}]
testObject.applyMock(mock)

То есть, макет можно рассматривать как объект с классом вроде:


class mock:

    def apply(self, value):
        return value *2

    def isValid(self):
        return true

Есть ли хороший питонический способ добиться этого?

Приветствие Alex

1 Ответ

2 голосов
/ 23 февраля 2010

Используйте трехпараметрическую форму type():

mock = type('mock', (object,), {'apply': (lambda self, value: value * 2),
  'isValid': lambda self: True})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...