Diskuze: class Polynomial
Zobrazeno 4 zpráv z 4.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
Myslím, že mít všechny tři zároveň nepůjde. http://stackoverflow.com/…rs-in-python
Pokud musíš takovou zrůdnost dělat, tak budiž. Tady máš rychlý
nástřel.
A učitelovi vyřiď, že by za takové zadání zasloužil nafackovat
class Polynomial:
def __init__(self, *args, **kwargs):
if args and kwargs:
raise NotImplementedError("Tohle neumíme")
elif len(args) == 1:
self.__dict__ = {"x%s"%i:j for i,j in enumerate(args[0])}
elif len(args) > 1:
self.__dict__ = {"x%s"%i:j for i,j in enumerate(args)}
elif kwargs:
self.__dict__ = kwargs
else:
raise NotImplementedError("A tohle už vůbec ne!")
def __repr__(self):
return str(self.__dict__)
pol1 = Polynomial([1,-3,0,2])
pol2 = Polynomial(1,-3,0,2)
pol3 = Polynomial(x0=1,x3=2,x1=-3)
for pol in pol1, pol2, pol3:
print(pol)
Když se budeš hodně snažit, půjde to, ale to ještě neznamená, že je to dobrý nápad. Inteligentně ošetřit všechny vstupy je pak práce pro vraha, můžeš si zkusit:
Polynomial(1)
Skončíš s výjimkou jen proto, že jsem zapomněl ošetřit případ, kdy je argument jen jeden a není to list.
Pro takové věci se hodí například:
https://pypi.python.org/…ipledispatch
Ale tak nějak pochybuji, že ten učitel chtěl zrovna toto.
Zobrazeno 4 zpráv z 4.