Skoči na vsebino

Naloge

Naloge so namenjene sprotnemu delu. Če se zatakne, poglejte namige (ali skočite na rešitve).

Naloga 1 - dodajte dokumentacijski niz

S tretjim argumentom m.def dodajte docstring eni izpostavljeni funkciji.

Kriterij uspeha:

  • help(vasmodul.vasafunkcija) prikaže vaš opis.

Namig:

  • m.def("ime", &fn, "Ta funkcija ...")

Naloga 2 - izpostavite preobremenjeno funkcijo

Napišite dve C++ funkciji z istim imenom, a različnim podpisom (npr. add(int,int) in add(double,double)) in izpostavite obe v Pythonu.

Kriterij uspeha:

  • obe različici lahko iz Python kličete brez dvoumnosti.

Namig:

  • pybind11 podpira razreševanje preobremenitev; morda boste potrebovali py::overload_cast<...>(...).

Naloga 3 - uporabite imenske argumente

Izpostavite funkcijo tako, da jo lahko v Pythonu kličete z imenskimi argumenti.

Kriterij uspeha:

  • fn(a=1, b=2) deluje.

Namig:

  • v vezavi uporabite py::arg("a"), py::arg("b").