Objekty v Pythonu
Porozumění
Váš denní počet odpovědí je omezen. Pro navýšení limitu či přístup do svého účtu s licencí se přihlaste.
Přihlásit sePython, stejně jako většina dalších moderních programovacích jazyků, podporuje objektově orientované programování. To už je poměrně pokročilé programátorské téma. Zde si shrneme jen některé základní pojmy.
Objekt (object) je kolekce dat (proměnných) a metod (funkcí), které s těmito daty pracují. V Pythonu jsou téměř všechna data, se kterými se setkáme, objekty (čísla, řetězce, seznamy, …).
Objekty jsou speciální instance tříd (class). Třídu můžeme chápat jako obecný vzor, podle kterého se tvoří objekty.
Příklad definice třídy:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def introduce(self):
print("My name is ", self.name)
print("I am ", self.age, "years old")A takto vytvoříme objekty (instance třídy) a použijeme je:
homer = Person("Homer Simpson", 39)
bart = Person("Bart Simpson", 10)
homer.introduce()
bart.introduce()V tomto příkladě:
Personje třída,homerabartjsou objekty,nameaagejsou datové atributy,introduce()je metoda,__init__je inicializační metoda, která se automaticky volá při vytváření objektu.
Fatal error: Uncaught TypeError: App\Service\PsService::getUserItemStatusByPs(): Argument #1 ($user) must be of type int, null given, called in /var/www/umimeprogramovat.cz/webroot/src/Snippet/Exercise/ItemBasedExercise/ItemBasedExercisePlugin.php on line 66 and defined in /var/www/umimeprogramovat.cz/webroot/src/Service/PsService.php:69 Stack trace: #0 /var/www/umimeprogramovat.cz/webroot/src/Snippet/Exercise/ItemBasedExercise/ItemBasedExercisePlugin.php(66): App\Service\PsService->getUserItemStatusByPs() #1 [internal function]: App\Snippet\Exercise\ItemBasedExercise\ItemBasedExercisePlugin->progress() #2 /var/www/umimeprogramovat.cz/webroot/src/Helper/ExerciseHeaderBuilder.php(20): call_user_func() #3 /var/www/umimeprogramovat.cz/webroot/src/Template/BaseExercise/default.php(26): App\Helper\ExerciseHeaderBuilder->render() #4 /var/www/umimeprogramovat.cz/webroot/src/Controller/BaseExercise.php(119): require('...') #5 /var/www/umimeprogramovat.cz/webroot/exercise/porozumeni.php(21): App\Controller\BaseExercise->renderDefault() #6 /var/www/umimeprogramovat.cz/webroot/index.php(127): include('...') #7 {main} thrown in /var/www/umimeprogramovat.cz/webroot/src/Service/PsService.php on line 69