- Samsung Galaxy Watch (Tizen és Wear OS) ingyenes számlapok, kupon kódok
- Szingapúri tanúsítvány utal a Xiaomi 17T széria nemzetközi érkezésére
- One mobilszolgáltatások
- Fotók, videók mobillal
- Itt a Galaxy S26 széria: az Ultra fejlődött, a másik kettő alig
- Xiaomi 17 Ultra - jó az optikája
- Xiaomi 15T Pro - a téma nincs lezárva
- Motorola Edge 70 - többért kevesebbet
- Milyen okostelefont vegyek?
- Android szakmai topik
Ú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
- Samsung Galaxy Watch (Tizen és Wear OS) ingyenes számlapok, kupon kódok
- Szingapúri tanúsítvány utal a Xiaomi 17T széria nemzetközi érkezésére
- CPU léghűtés kibeszélő
- Sorozatok
- Szemüveges topik
- Vegyes fogadtatás, erős rajt: 2 millió példánynál a Crimson Desert
- Fogyjunk le!
- Linux kezdőknek
- BMW topik
- Nem fut az Intel grafikus vezérlőin az év egyik legjobban várt címe
- További aktív témák...
- BESZÁMÍTÁS! Intel Core i9 10850K 10 mag 20 szál processzor garanciával hibátlan működéssel
- BESZÁMÍTÁS! 1TB Kingston Fury Renegade NVMe SSD meghajtó garanciával hibátlan működéssel
- BESZÁMÍTÁS! 4TB Corsair MP600 Pro XT NVMe SSD meghajtó garanciával hibátlan működéssel
- BESZÁMÍTÁS! Gigabyte Gaming RTX 3060Ti 8GB videokártya garanciával hibátlan működéssel
- BESZÁMÍTÁS! ASUS DUAL MINI RTX 3060Ti 8GB videokártya garanciával hibátlan működéssel
- Prémium! Bambulab bontatlan filamentek (PLA - PETG- ABS) ÁFÁS- számlával eladóak készletről!
- Újszerű Apple Macbook Pro 13 - Touch B - M2 - 8/256GB - 18 Ciklus - 100% akku - MAGYAR -asztroszürke
- HIBÁTLAN iPhone 12 Pro 256GB Graphite-1 ÉV GARANCIA - Kártyafüggetlen, MS4518, 100% Akksi
- MacBook Air M1 13" 16GB RAM 256GB SSD 27% áfás számla 0347AB
- Apple iPhone 13 128GB, Kártyafüggetlen, 1 Év Garanciával
Á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.
