Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import collections as clc
- Trip_params = clc.namedtuple("Trip_params","hotel price date_from date_to destination rating")
- #Zajezd_parametry = clc.namedtuple("Zajezd_parametry","nazev_hotelu cena odlet prilet destinace hodnoceni")
- #ROZDÍLNÁ jména jako používám v šablonách, ČESKÉ názvy proměnných
- Zajezd_parametry = clc.namedtuple("Zajezd_parametry","hotel price date_from date_to destination rating")
- #STEJNÁ jména jako používám v šablonách, ANGLICKÉ názvy proměnných
- #seznam parametrů jednotlivých zájezdů jako samostatné položky
- prvni = Zajezd_parametry("ItaWella", "10000Kč", "1.9.2020", "11.9.2020", "Itálie", "1*")
- druhy = Zajezd_parametry("FraResort", "20000Kč", "2.9.2020", "12.9.2020", "Francie", "2*")
- treti = Zajezd_parametry("BelBells", "30000Kč", "3.9.2020", "13.9.2020", "Belgie", "3*")
- #a z nich udělaný klasický Pythonovský seznam
- hotely = [prvni, druhy, treti]
- #Šablony textů s parametry pro funkci .format() pro různé příležitost uložené v seznamu. Ve složených závorkách jsou anglické názvy proměnných, na které bych chtěl namapovat ty parametry ze seznamu hotely (type="Zajezd_parametry")
- Sablony=["Hotel {hotel} za cenu {price} s odletem {date_from}.",
- "Odleťte už {date_from} do hotelu {hotel} za úřasnou cenu {price}.",
- "Zaplaťte jen {price} a navštivte {hotel} od {date_from}.",
- "Za {price} od {date_from} do {rating} hotelu {hotel} do prosluněné {destination}."
- ]
- # tahle dvojitá smyčka je jen pro tento příklad. Tiskne pro všechny hotely všechny varianty Šablon
- for i in range(0,len(Sablony)):
- for hotel in hotely:
- #print(Sablony[i].format(hotel=hotel.nazev_hotelu,price=hotel.cena,date_from=hotel.odlet,rating=hotel.hodnoceni,destination=hotel.destinace)) #
- print(Sablony[i].format(hotel=hotel.hotel,price=hotel.price,date_from=hotel.date_from,rating=hotel.rating,destination=hotel.destination))
- #Chci se zbavit toho přiřazování nahoře ve funkci .format(hotel=hotel.hotel, price=hotel.price.........)
- #Vyzkoušel jsem všelijaké kombinace s funkcí map, čili jsem myslel, že bude stačit něco jako toto:
- #print(Sablony[i].format(map(nevim_co_tu_ma_byt,hotel))
- #abych prostě mohl předat celou tu pojmenovanou matici hotel (resp. prvni, druhy, treti) funkci .format
- #a nemusel se starat, jestli ta konkrétní Šablona z toho použije jen dvě proměnné nebo všechny,
- #protože jsou dobře pojmenované
- #Zároveň bych se chtěl zbavit té závislosti na jménech těch proměnných v Zajezd_parametry
- #třeba tím, že to Trip_params používá stejná jména jako ty šablony, takže kdyby se mi povedlo něco jako:
- #prvni = Zajezd_parametry(nazev_hotel='ItaWella', cena='10000Kč', odlet='1.9.2020', prilet='11.9.2020', destinace='Itálie', hodnoceni='1*')
- #převést na
- #hotel = Trip_params(hotel='ItaWella', price='10000Kč', date_from='1.9.2020', date_to='11.9.2020', destination='Itálie', rating='1*')
- #tak bych dosáhl svého.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement