Изучите прикладную проблему (# 7) в главе 12 «Программирование на Haskell».

Я не специалист по потоку ни один из них, ни эксперт по модулю python unmitest, поэтому очень жаль, если мой ответ не поможет вам решить вашу проблему.

Сказав, в вашем модуле example.py, метод test_Header полагается на экземпляр dict Browsers_waiting, определенный в унаследованном классе Setup из модуля инициализации. Вопрос, о котором идет речь, заполняется ключевыми парами значений, когда выполняется метод get_browser_and_wait.

Итак, в этот момент, если метод get_browser_and_wait никогда не вызывался, вы перебираете пустой dict

def test_Header(self):
    for i, browser in enumerate(Setup().browsers_waiting):
        # this does not work
        driver = browser["driver"]
        self.test_result = None

Снова сказав это, я не знаю, как работает модуль unitest, и этот dict должен иметь некоторые значения при ссылке.

3
задан retnuH 18 January 2019 в 17:50
поделиться

1 ответ

Val :: Int -> Expr a

для любой a. Таким образом,

Val x <*> _ = Val x

является действительным, как и

_ <*> Val y = Val y

, как и

Val x <*> Val y = Val (something about x and y)

, поэтому, к сожалению, теперь у вас есть выбор, что означает, что вы собираетесь сделать неправильный К счастью, только один из них совместим с экземпляром Monad (какой?).

Что касается рекурсивного случая, у вас есть

Add e e' <*> fb = ...
     -- e :: Expr (a -> b)
     -- e' :: Expr (a -> b)
     -- fb :: Expr a

И вы должны использовать всю входящую информацию для создания Expr b, а также для сохранения «структуры» (Add). Каким образом вы можете сделать Expr b из этого (помните, что вы можете использовать аппликативный оператор рекурсивно)?

0
ответ дан luqui 18 January 2019 в 17:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: