Wpis z mikrobloga

Hej białorycerze Pythona obsmarowujący mnie, że w mojej 20 letniej karierze języków typowanych unikałem tego gówna jak ognia...

Oto kolejny dowód na dodatkowy chromosom Pythona.

Co zwróci poniższy kod?

x = set([1, 2, 3]),

for i in x:
____print(i)

#programowanie #programista15k #python
  • 33
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

via Wykop Mobilny (Android)
  • 37
@kobrys13: kod się wysra przez jakieś cudzyslowy przecinki, zakładam że ten podkreslnik to "wciecie" a nie czesc nazwy funkcji ktora chcesz wywolac;) jak byś to dobrze sformatowal to wyprintowalby elementy w nieustalonej kolejnosci bo set kolejnosci nie trzyma. Jesli uzywasz jakiejs struktury której dzialania nie rozumiesz to nie jest problem z językiem ;) set to całkiem przydatne narzędzie, które nie wiem po co wcisnąłes do tego kodu
  • Odpowiedz
kod się wysra przez jakieś cudzyslowy przecinki


@wiewior_s: kod się nie wysra i zwróci wynik, za podkreślniki podziękuj wykopowemu zespołowi specjalistów od formatowania kodu...

a co zwróci to własnie niespodzianka, która zabrała mi trochę czasu jednej nocy...
  • Odpowiedz
w 20-letniej karierze nigdy nie słyszałeś o strukturze danych "zbiór"?


@TMP_2137: gdyby tutaj chodziło o zbiór to uwierz mi, że bym się nawet słowem nie odezwał
  • Odpowiedz
via Wykop Mobilny (Android)
  • 3
@kobrys13: generalnie ktoś tam wpisal glupotke zostawiając taki przecinek, ale uzywane to jest do tego żebyś mógł sobie zrobić coś takiego:
x = a, b, c

I wtedy w x masz tuple który jest immutable i znacznie szybszy od listy.

W mojej 10 letniej karierze się taki problem nie trafił a strzelam że w javie bym zgłupiał od jakiś javowych smaczków
  • Odpowiedz
via Wykop Mobilny (Android)
  • 0
@kobrys13: ale ten kod to akurat się juz wysra bo wyglada jak bys najpierw przypisał set do keyword arga x a potem probowal uzyc pozycyjnego argumentu co akurat nie jest dozwolone przy wywolaniu funkcji, cos musiales pomieszac
  • Odpowiedz
via Wykop Mobilny (Android)
  • 2
@kobrys13: już tłumaczę czemu jest dozwolony - po to zebys mogl zrobic tuple z jednym elementem.
Pytanie po co robić tuple z jednym elementem?
Chyba tylko dla spojnosci kodu zeby przekazywac gdzies ten sam typ bo inne zastosowanie nie przychodzi mi do głowy :p
  • Odpowiedz
via Wykop Mobilny (Android)
  • 5
@kobrys13: mowie o tym:

mieliśmy taki kod:

result = func(x = set([1, 2, 3]), True)

To nie ma prawa dzialac bo nie mozesz dac kwargs przed normalnymi argumentami
  • Odpowiedz
@bungaBunga: oczywiście - standardy korporacyjne jakie zastałem nie są idealne i jedną z moich ról jej podnosić je do bardzo wysokich

Dlatego też od niedawna żadna nowa zmiana bez unit testów nie przechodzi, a na listopad zamierzam wrzucić do repo coś co wymusi 90% pokrycie (tzw zdrowy coverage) tak by każdy dotknięty plik wymagał dopisania testów.

Wielu nie będzie zadowolonych, ale tak
  • Odpowiedz