Тема за въпроси свързани с девета задача.
Девета задача
- Публикувано преди
Готина задачка :) и срокът е по-дълъг този път! А какво става с по-големите проекти? Няма ли да е по-добре да имаме по-голяма прозрачност и по-този въпрос за по-добро разпределяне на задачите в рамките на цялата сесия ;) Поздрави, Никола!
Публикувано предиАко някой иска: тестове :)
Публикувано преди@Евгени, теста test_several_multimethods не би ли трябвало да хвърля изключение, тъй като от задача 6: "Всички методи трябва да имат едно и също име. В противен случай пораждайте NameError"
Публикувано предиВ задача 6 мисля,че се има предивид,че всички методи,които декорираме с @collide.multimethod трябва да са с име collide Т.е. може да имаме @multimethod
def collide(self, a: Spaceship, b: Spaceship): print("Two spaceships") @collide.multimethod def collide(self, a: Spaceship, b: Asteroid): print("A spaceship and an asteroid")
@multimethod
def collide2(self, a: Spaceship, b: Spaceship): print("Two spaceships") @collide2.multimethod def collide(self, a: Spaceship, b: Asteroid): print("A spaceship and an asteroid")
но не и @multimethod
def collide(self, a: Spaceship, b: Spaceship): print("Two spaceships") @collide.multimethod def collide2(self, a: Spaceship, b: Asteroid): print("A spaceship and an asteroid")
Поне аз така го разбирам условието,а и по принцип, е напълно нормално в един клас да има няколко мултиметода с различни имена В този ред на мисли тестовете на Евгени са си ок.
Публикувано предиА очаква ли се имплементацията да работи и за методи, добавени към класа извън неговото тяло? Например:
class A: def x(self, a:int): print("int") def x(self, a:str): print("string") A.x = x a = A() a.x(3) #int a.x("edno")#string
Публикувано предиДобър въпрос, мислех да питам същия. Подкрепям запитването (:
Публикувано предиЕвгени мисля, че на 61-ви ред raises.m('This parrot is dead') не се очаква LookupError. Защото в случая няма multi dispatch.
Публикувано предиИ при мен в началото нямаше, ама май от условието не става ясно дали не би трябвало и в този случай да има. Хм, май е малко късно, но дали организаторите на курса могат да се включат с разяснение - ако има само един метод с определено име и той има параметри, анотирани с валидни Python-ски типове, предполага ли се да го третираме като multidispatch?
А ето и малко тестове от мен за нещо, което тези на Евгени не покриват - named arguments :) http://paste.debian.net/120770/
Публикувано предиДо колкото видях официалния тест на 6-та задача, да, дори и да има само една версия на метода, трябва да се проверяват анотациите.
Публикувано преди
Трябва да сте влезли в системата, за да може да отговаряте на теми.