Hirdetés
- iPhone topik
- Xiaomi 15T Pro - a téma nincs lezárva
- OnePlus 15 - van plusz energia
- Vivo X300 Ultra - tárcsázz, ha van rá keret!
- Távozik az Apple vezérigazgatója
- Milyen okostelefont vegyek?
- Íme az új Android Auto!
- Nemzetközi vizekre evezett a Realme GT 7 és GT 7T
- Bemutatkozott az Oppo kamerás csúcsmodellje
- Xiaomi 15 - kicsi telefon nagy energiával
Új hozzászólás Aktív témák
-
maser
tag
válasz
pigster
#1803
üzenetére
Mint ahogy már feljebb is írták:
tmp =str(self.kartyak[0:1])
Ez egy 1 elemű tömböt hoz létre, és nem csak egy elemet ad vissza.Amikor pedig egy tömböt sztringgé alakítasz, akkor a tömb elemeit próbálja reprezentálni.
Ilyenkor az objektum__repr__függvényét hívja meg.Írd felül a
__repr__függvényt, és akkor menni fog! -
cousin333
addikt
válasz
pigster
#1824
üzenetére
"There's been a number of complaints about the choice of the name 'decorator' for this feature. The major one is that the name is not consistent with its use in the GoF book [11]. The name 'decorator' probably owes more to its use in the compiler area -- a syntax tree is walked and annotated. It's quite possible that a better name may turn up." [link]
Ilyen az élet...

-
cousin333
addikt
válasz
pigster
#1822
üzenetére
Alapvetően jól látod.
"A @decorator_func a decorated_func = decorator_func(func_needs_decorator) -val egyenértékű (állítólag)"
Nem egészen. A
@decorator_funcaz tudtommal afunc_needs_decorator = decorator_func(func_needs_decorator)
sorral egyenértékű, tehát nem véletlen, hogy "felülírja" az eredeti függvényedet (legalábbis az aktuális alkalmazásban), de ez az írásmód eleve csak egy "syntactic sugar" a fent említett lépésre. Különösen akkor jön jól, ha mondjuk több dekorátort is használni kéne egyszerre.A dekorátorokról, működésükről, használatukról itt van egy alapos cikk: [link]. Azért linkeltem, mert a hozzászólások között konkrétan felteszik ugyanazt a kérdést, amit te. A választ idézve:
"The whole point of decorators is to modify the behavior of the function through a wrapper so we don't have to actually modify the function. The function is not permanently modified; the behavior changes only when it's decorated."
Gyakorlatilag egy mások által készített függvényt ki tudsz egészíteni anélkül, hogy hozzá kéne nyúlnod. Vagy az alap függvényedet általánosabban írhatod meg, és az aktuális felhasználás során dekorátorokkal specifikálhatod. Mindezt egy átlátható szintaxissal. Ha meg mindkettő funkcionalitására szükséged van, még mindig ott az első módszer.
-
kovisoft
őstag
válasz
pigster
#1819
üzenetére
Igen, az x objektum stringgé konvertálásakor (pl. str(x), print("%s" % x), stb) az __str__ metódus hívódik meg, ezt kell felülírnod, ha saját olvasható formázást akarsz. Ha az __str__ nincs definiálva, akkor a __repr__ hívódik meg. Ha ez sincs definiálva, akkor is van egy alapértelmezett reprezentáció, amit már te is láttál ebben a példádban:
<kartya.Kartya object at 0x000002AE6652D860> -
cousin333
addikt
válasz
pigster
#1814
üzenetére
Ezzel már én is megjártam, és szerintem is jobb lenne, ha így működne, de a Zen of Python szerint:
"Explicit is better than implicit."
-
KEAN
tag
válasz
pigster
#1803
üzenetére
Szia!
Ez az __str__ függvény többek közt akkor hívódik, amikor a print utasítással (vagy függvénnyel, ha python3.x-ről beszélünk) "hajtod" meg a dolgokat. Tehát a
print self.kartyak[0]működne a dolog.
A másik, hogy mindenhol a "slicingot", [0:1] használod, ami egy listát ad vissza, nem pedig magát az objektumot.
Ha mindenképpen szükséged van valami hasonló funkcionalitásra, ami "print nélkül" is visszaadja a "string értéket", akkor írj valami get_string_value() függvényt, ami pont azt csinálja, mint az __str__ és hívd azt amikor szükség van rá. -
kovisoft
őstag
válasz
pigster
#1803
üzenetére
Ha a kartyak tömb 0. elemére akarsz hivatkozni, akkor így hivatkozz rá: kartyak[0], mert ha kartyak[0:1] -et írsz, akkor ez nem egy elem, hanem egy rész-tömb lesz, ami csak a 0. elemet tartalmazza. Ez látszik is abból, hogy ha kiíratod, akkor szögletes zárójelek közé teszi.
Új hozzászólás Aktív témák
Hirdetés
- BESZÁMÍTÁS! ASUS Z170 i7 6700K 16GB DDR4 512GB SSD GTX 1660Ti 6GB Rampage SHIVA DeepCool 400W
- BESZÁMÍTÁS! ASUS H510M i5 11400F 16GB DDR4 500GB SSD RX 6600 8GB Rampage SHIVA FSP 500W
- BESZÁMÍTÁS! Asus H310M i5 9400 16GB DDR4 500GB SSD GTX 1660 Super 6GB Rampage SHIVA DeepCool 400W
- BESZÁMÍTÁS! Asus Z370A i7 9700 16GB DDR4 512GB SSD RTX 3060 12GB Rampage SHIVA Adata 600W
- BESZÁMÍTÁS! ASRock B450M R5 3600 16GB DDR4 512GB SSD GTX 1660 Super 6GB Rampage SHIVA DeepCool 400W
- Spigen Essential EF323MQ 3in1 Mágneses MagSafe Vezeték nélküli töltőállomás 25W Qi2.2 Fekete
- 8gb 16gb DDR 5 so-dimm laptop RAM 4800MHz 5600MHz
- Kingston HyperX IMPACT 32GB DDR4 2400 MHz laptop RAM (2x16GB)
- GYÖNYÖRŰ iPhone 15 Pro Max 256GB Blue Titanium-1 ÉV GARANCIA - Kártyafüggetlen, MS4240
- Lenovo ThinkPad T14 Gen2 Intel i5-1135G7 Refurbished - Garancia
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest


