- Átjutottak a Ciscón, betörtek a kormányok hálózataiba
- DIGI internet
- Bittorrent topik
- Milyen routert?
- Gépész 3D tervezőrendszerek
- Aliexpress tapasztalatok
- TP-Link Archer C5 - AC1200 router
- Bocsánatot kért az Apple, mert nagyon mellélőtt a legutóbbi reklámjával
- Kodi és kiegészítői magyar nyelvű online tartalmakhoz (Linux, Windows)
- ASUS routerek
Új hozzászólás Aktív témák
-
pigster
senior tag
Sziasztok!
Kezdek ismerkedni a Pythonnal, de folyton gondom van a __str__ metódussal.
Egy Black Jack programot készítek.
Van egyclass Kartya():
ezen belül
pedig:def __str__(self):
return str(self.szin.capitalize() + ' ' + self.figura.capitalize())
Jól gondolom, hogy ennek az lenne az értelme, hogy ha sztringként akarom kezelni, pl. egy print utasításban, akkor ezt adja vissza?A gondom a következő:
Létezik egy pakli is, meg egy játékos osztály is. Van pl. egy kartyak lista
Hiába akarnám kiíratni ennek csak egyetlen elemét, ami ugye egy Kartya objektum, és annak pedig van egy __str__ metódusa pont ilyen esetekre:tmp =str(self.kartyak[0:1])
Akárhogy is próbálkkozok vagy kiíírja:[<kartya.Kartya object at 0x000002AE6652D860>]
vagy hibát ír:tmp = ''.join(self.kartyak[0:1])
TypeError: sequence item 0: expected str instance, Kartya found
Mit kellene csinálni, hogy jó legyen?
FIGYELEM! A többszázezres Samsung okostévék kéretlen reklámokat tolnak az arcodba.
-
pigster
senior tag
Köszi a gyors válaszokat.
Túl pythonos módon akartam megoldani. A [0] megoldással működik.
Ugyanakkor a join nem azt csinálná, hogy a paraméterként megadott listán végigmegy, veszi az egyes elemeket (ezek már nem lista-részek, hanem külön-külön elemek) és azokat összefűzi? Ekkor nem kellene a __str__ metódusnak működésbe lépnie minden egyes elemen, mivel egy sztringre lenne "igény" az egyes elemek esetében?FIGYELEM! A többszázezres Samsung okostévék kéretlen reklámokat tolnak az arcodba.
-
-
pigster
senior tag
Újabb kérdésem lenne decorator témakörben:
def func_needs_decorator():
print("I want to be decorated!")
def decorator_func(original_func):
def wrap_func():
print('Code before')
original_func()
print('Code after')
return wrap_func
decorated_func = decorator_func(func_needs_decorator)
decorated_func()Eredménye:
Code before
I want to be decorated!
Code after
Ez tiszta sor.A @decorator_func a decorated_func = decorator_func(func_needs_decorator) -val egyenértékű (állítólag). De mégsem:
@decorator_func
def func_needs_decorator_2():
print('Want to be decorated twooo!')
func_needs_decorator_2()Ha a @-cal használom, akkor az eredeti def már nem lesz elérhető, csak a dekorált. Ez pont szembemegy azzal, amire jó lenne az egész, hogy bizonyos körülmények között az eredeti függvényt használom, máskor pedig a dekorátorral módosítottat. Ez pont csak akkor lehetséges, ha nem a @ megoldást választom, hanem ezt: decorated_func = decorator_func(func_needs_decorator)
Vagy rosszul látok valamit?
[ Szerkesztve ]
FIGYELEM! A többszázezres Samsung okostévék kéretlen reklámokat tolnak az arcodba.
-
pigster
senior tag
válasz cousin333 #1823 üzenetére
nem véletlen, hogy "felülírja" az eredeti függvényedet
Igaz, pont ezért nem kellene dekorátornak hívni. Akkor lenne így, ha működne azoriginal_func()
és pl. (tudom, hogy nem így van):@decorator_func (original_func)
vagy@decorator_func original_func
is.FIGYELEM! A többszázezres Samsung okostévék kéretlen reklámokat tolnak az arcodba.
Új hozzászólás Aktív témák
- Huawei Mate 40 Pro - a csúcson kell abbahagyni?
- Mikrokontrollerek Arduino környezetben (programozás, építés, tippek)
- Dead Island 2 - Túl a 7 millió játékoson
- Ketogén étrend
- Átjutottak a Ciscón, betörtek a kormányok hálózataiba
- Xbox Series X|S
- Pécs és környéke adok-veszek-beszélgetek
- Luck Dragon: Asszociációs játék. :)
- DIGI internet
- Fogyjunk le!
- További aktív témák...
- GIGABYTE RTX 3060TI GAMING OC 8G
- ÁRGARANCIA!Épített KomPhone i9 14900KF 64GB RAM RTX 4090 24GB GAMER PC termékbeszámítással
- ÁRGARANCIA!Épített KomPhone Ryzen 9 7900X3D 64GB RAM RTX 4090 24GB GAMER PC termékbeszámítással
- ÁRGARANCIA!Épített KomPhone Ryzen 7 7800X3D 32/64GB RAM RTX 4090 24GB GAMER PC termékbeszámítással
- ÁRGARANCIA!Épített KomPhone i7 14700KF 32/64GB RAM RTX 4090 24GB GAMER PC termékbeszámítással
Állásajánlatok
Cég: Ozeki Kft.
Város: Debrecen
Cég: Promenade Publishing House Kft.
Város: Budapest