Трета задача

  1. Извинявам се за глупавия въпрос, защото видях, че подобен е задаван вече. Да разбираме ли, че всички генератори, от които имаме нужда, ще са дефинирани в generator_definitions, пожене в предишен пост се отговори, че генераторите в първия аргумент на interwined_sequences няма да са глобални. По това съдя, че няма как да използваме alphabet, fibonacci от предишните задачи ?

  2. alphabet, fibonacci и primes са достъпни от вашия код, тъй като част от задачата е да ги напишете. Тяхната имплементация е в същия модул, в който е и intertwined_sequences, така че той може да ги извиква при необходимост.

  3. @Стоян, стойностите, с които проверяваш в някои от тестовете ти не са правилни- те предполагат, че при повторно повикване на един и същ генератор се вика втора негова инстанция, а в условието пише "Ако два елемента на списъка със спецификацията имат еднаква стойност за 'sequence', то те реферират към един и същи генератор, от който продължаваме „да взимаме“ стойности по-късно".

  4. @Стоян Според мен на test_intertwine_fpaapf резултата трябва да бъде [1, 2, 'a', 'b', 3, 1] , а не [1, 2, 'a', 'а', 3, 1], защото при всяко следващо срещане след първото na alphabet, трябва да използваш инстанцията на първото срещане на alphabet(В един от горните коментари го има и пример има). На този test_two_factorial резултати би трябвало да бъде [1, 2, 6, 24, 120, 720, 5040, 40320, 362880, 3628800, 39916800, 479001600], а не [1, 2, 6, 24, 1, 2, 6, 1, 2, 6, 24, 120], защото всяко извикване на factorial() трябва да ти генерира елементите, които следва, а не да започва от начало.

    За test_generator_with_parametrs и test_generator_with_parametrs_generator_a не знам точно дали трябва да бъде така, защото първото извикване на multiples_of е с аргумент 12, а второто е с аргумент 3, а в условието пише:

    при повторно срещане на генератор очакващ аргументи, няма нужда те да бъдат указвани, защото се използва същата инстанция.

    Това, доколкото разбирам би трябвало да означава, че дори и да се подаде аргумент при второто срещане трябва да се използва аргумента от първото срещане, следователно 12 и крайните резултати да бъдат: На test_generator_with_parametrs [12, 24, 36, 48, 60, 1, 1, 1, 72, 84, 96], а на test_generator_with_parametrs_generator_a [12, 'a', 'a', 'a', 24, 36, 48].

    Даже аргументите на генераторите трябва да бъдат kewords only, мисля.

  5. @Илиян Якимов на теста: test_intertwine_fpaapf мисля, че не си прав. {'sequence': 'alphabet', 'code': 'lat', 'length': 1}, {'sequence': 'alphabet', 'code': 'bg', 'length': 1}, подавам два различни генератора, не трябва ли този с българските букви пак да почне от 'а'

  6. Аз го направих и по двата начина(напр. при 2 срещания с дължина: 3 и lat и bg съответно ми извежда [a, b, c, а, б, в] в единия вариант и [a, b, c, d, e, f] в другия съответно) и ако може някой да потвърди, коя е вярната версия, за да знаем какво да пращаме ? :)

  7. @Стояне, не. В условието си пише, че за всяко следващо срещане на генератор, който вече си използвал, трябва да извикаш инстанцията от първото срещане, а не текущата, която си срещнал. В предните постове имаше точно този въпрос. Например, това нещо

    a = [{'sequence': 'alphabet', 'letters': 'bggfdghjhj', 'length': 2},
     {'sequence': 'alphabet', 'letters': 'сдкйбггс', 'length': 2},
     {'sequence': 'alphabet', 'code': 'bg', 'length': 2},
     {'sequence': 'alphabet', 'code': 'lat', 'length': 2},
     ]
    

    трябва да изведе ['b', 'g', 'g', 'f', 'd', 'g', 'h', 'j'], а не ['b','g','с','д','a','б','a','b'] .

    П.С. Тестове на @Александър минават при мен.

  8. Един въпрос: generator_definitions не трябва ли да е keyword-only аргумент според условието? При мен четири от тестовете на @Александър гърмят със забележката, че се подават 2 позиционни аргумента, вместо 1.

  9. "В случай, че някой конструктор в generator_definitions приема аргументи, те трябва да бъдат описани в dict-а за съответния конструктор."

    Ако някой конструктор приема допълнителни аргументи, те keyword-only ли трябва да са? И може ли да приема повече от един допълнителен аргумент?

  10. @Красимир приеми, че са keyword only, те са част от dict-а, така че няма как да знаеш в какъв ред да ги подадеш така или иначе. Може да са произволен брой и с произволни имена(освен sequence и length разбира се).

Трябва да сте влезли в системата, за да може да отговаряте на теми.