- One mobilszolgáltatások
- Samsung Galaxy Watch8 - Classic - Ultra 2025
- Android szakmai topik
- Mától Huawei okosórákkal is lehet érintésmentesen fizetni
- Google Pixel topik
- Xiaomi 15T Pro - a téma nincs lezárva
- Honor Magic6 Pro - kör közepén számok
- Milyen okostelefont vegyek?
- iPhone topik
- Huawei Watch GT 6 és GT 6 Pro duplateszt
Új hozzászólás Aktív témák
-
cousin333
addikt
válasz
Tigerclaw
#2579
üzenetére
A Python hivatalosan "multi paradigm", de az OOP erősen jelen van már az alapoknál. Tekintve hogy pl. az "egész szám" is egy osztály, saját metódusokkal... stb., inkább tekinteném olyan OO nyelvnek, ami nem tolja ezt az arcodba.
A Python alapvetően más, mint sok ismert nyelv, és ez az OO terén is megjelenik. Szerintem nagyon is használható OO nyelvként, nem hiányzik belőle semmi, csak bizonyos dolgokat máshogy kezel. Absztrakt osztályok vannak benne, öröklés szintén. Adatrejtés elve is benne van, de Raymond Hettinger szerint a Python egy "consenting adult" nyelv. Szóval nincs olyan, hogy privát változó (csak privát-szerű, lásd _a vagy __a), de a paramétereket, metódusokat szépen modulokba, fájlokba, osztályokba szervezheted, definiálhatsz osztályokat osztályokon belül... stb. Nekem eddig semmi nem hiányzott belőle a legfontosabb, hogy mindent úgy használj, ahogy megtervezték, és ne próbált a C++, Java stb. gondolatiságot beleerőltetni.
"mint egy klasszikus OOP nyelv"
És milyen lenne az a klasszikus OO nyelv?
Mint mondjuk a Java, ahol osztályok nélkül kb. mozdulni se tudsz? Vagy a C++ ami egy tuningolt C?"Dobálom ki a metódusokból a visszatérési értéket, az argumentum tipusokat"
Ami nem kell az minek is
Kb. mint a váltó, a kettős tömegű lendkerék meg a kipufogórendszer egy villanyautónál.nincs abstract osztály
De van, a célnak szerintem megfelel.
"nincs többszörös konstruktor"
De van. Lehet, hogy egy kicsit más jellegű, de lényegét tekintve ugyanaz.
"Muszáj vagyok commentbe tenni a listák, dictionaryk esetén, hogy milyen tipusra terveztem azokat."
Ez meg inkább csak egy rossz beidegződés, mint a C-s for ciklus:
for i in range(len(elemek)):print(elemek[i])vs.
for elem in elemek:print(elem)Pont az a lényeg, hogy nem előre kell típusra tervezni. Duck typing for president

"hogy tudok expliciten tipust kapcsolni a változókhoz"
Nem tudok ilyesmiről. Gondolom a type hint-re gondolsz, de az nem sokkal több, mint amit a neve sugall. Alapvetően azért van, hogy a statikus kódelemzők, meg az IDE-k működését segítse. Odaírhatod, hogy -> int, aztán visszatérhetsz egy szöveglistával

"Python namespace, scope, hogy aztán visszarakjam a láthatóságot a minimumra."
Engem meg pontosan ez a fene nagy titkolódzás zavar a többi nyelvbe. Csak arra jók, hogy mindent megbonyolítsanak, és elfedjék a komplexitásból következő problémákat. Egy rendes, jól strukturált Python programmal ezek jórészt kivédhetők, vagy eleve nem jelentenek gondot.
Tehát a lényeg, hogy a Python nagyon is OOP, a különbség nem a Python OOP és a többi OOP, hanem inkább a Python és a többiek között van. Nem akarom azt sugallni, hogy a Python minden megoldása van olyan jó, mint a többieké, vagy hogy mindent ugyanúgy megtehetsz, mint más nyelvekbe, de a saját logikája alapján jól működik, és szerintem elég jól meg van tervezve, a részek szépen összeillenek. Kivéve talán az enum, meg a switch-case...
Ezért is tűnik kicsit "veszélyesnek", ha 1:1-ben próbálod átfordítani a meglévő programodat. A Pythonnak nem csak a szintaxisa más, hanem a logikája is. Amúgy a Python is erősen típusos, próbálj csak meg összeadni egy sztringet meg egy számot.
Új hozzászólás Aktív témák
- Kompakt vízhűtés
- Luck Dragon: MárkaLánc
- sziku69: Fűzzük össze a szavakat :)
- Vezetékes FÜLhallgatók
- Kötelező frissítésnek számít a Microsoft legújabb csomagja a Windows 11-hez
- Azonnali fáradt gőzös kérdések órája
- AMD Ryzen 9 / 7 / 5 / 3 5***(X) "Zen 3" (AM4)
- Milyen Android TV boxot vegyek?
- Luck Dragon: Asszociációs játék. :)
- Overwatch 2
- További aktív témák...
- BESZÁMÍTÁS! Sony PlayStation 4 Slim 1TB HDD játékkonzol garanciával hibátlan működéssel
- Telefon felvásárlás!! Xiaomi Redmi Note 13, Xiaomi Redmi Note 13 Pro, Xiaomi Redmi Note 13 Pro+
- Apple Watch Ultra 2 - Black - Akku:100% - Jótállás: 2028.05.29-ig
- Lenovo X280 12" - i7 8550U, 16GB RAM, 256-512GB SSD, jó akku - számla, 6 hó gar
- HP EliteOne 800 G6 All-in-One i5-10500 32GB 1000GB 24" Érintőkijelző!! 1 év garancia
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Mint mondjuk a Java, ahol osztályok nélkül kb. mozdulni se tudsz? Vagy a C++ ami egy tuningolt C?
Kb. mint a váltó, a kettős tömegű lendkerék meg a kipufogórendszer egy villanyautónál.

