HeparKompan
Dołączył/a:
- 5 wpisów
- 64 komentarzy
- 2 obserwujących
@Dudlontko Elegancko Tomeczku, teraz tylko 40 lat roboty i wieczny odpoczynek.
Prawdopodobnie chodzi Ci o algorytm genetyczny / symulator życia.
Świetna robota Tomeczku!
W kwestii refactoru - całość wygląda nawet git, jedyne co to bym ten fragment bym zmienił, żeby wychodzić z pętli elegancko i ograniczyć liczbę powtórzeń jak request nie działa.
Tutaj cały wątek na SO jak to najlepiej obsłużyć - https://stackoverflow.com/questions/2083987/how-to-retry-after-exception
retries = 3
while retries:
try:
players_list = await a2s.aplayers(address)
retries = 0
except a2s.BufferExhaustedError:
print("BufferExhaustedError: retrying in 30 secs")
retries -= 1
await asyncio.sleep(30)
except TimeoutError():
print("TimeoutError: retrying in 1 minute")
retries -= 1
await asyncio.sleep(60)
@mejwen Które kraje dokładnie są liberalno-konserwatywne a które mają socjaldemokrację?
Finland - Socjaldemokracja
Denmark - Socjaldemokracja
Iceland - ?
Israel - ?
Netherlands - ?
Sweden - ?
Norway - Socjaldemokracja
Switzerland - Liberalno-konserwatywne
Luxembourg - ?
New Zealand - ?
@HannibalLecter odpiszesz priv/discord? :grinning:
@Johnnoosh @dradrian-zwierachs mój jeden jamnik nauczył się imion wszystkich czterech psów jakie mamy, reszta reagowała tylko na swoje imię a ten przybiegał jak ktokolwiek był wołany xDD
Dokładnie tak, typeof what === 'string' :smiley:
A jeżeli chcesz coś mega pro co nie przepuści żadnego stringa to:
function isString (what: unknown) {
return (Object.prototype.toString.call(what) === '[object String]');
}
Różnica jest taka, że gdy 'what' zainicjujesz w ten sposób: "let what = new String('LEFT') to pierwszy sposób zwróci false, a drugi true :smiley:
function isString (obj: unknown) {
return (Object.prototype.toString.call(obj) === '[object String]');
}
let x = new String('some txt');
console.log(typeof x === 'string') // false
console.log(isString(x)) /// true
@Hepar Tylko funkcje,
Na dekoratory patrzyłem już kiedyś i myślałem że może ktoś z nimi już coś podobnego zrobił(dynamicznych języków używam dość rzadko, więc od zera trochę by mi to zeszło by zrozumieć), ale skoro działają one tylko na klasach to raczej całkowicie odpadają
@krokietowy A czy w typescripcie masz funkcje czy klasy z metodami? Bo Dekoratory typescriptowe tylko do metod można podłączyć - https://www.typescriptlang.org/docs/handbook/decorators.html
Documentation - DecoratorsTypeScript Decorators overviewTypescriptlang@Hepar Tyle że takich funkcji są dziesiątki i pisanie tego dla każdego argumentu zrobi jeszcze więcej zamieszania, więc szukam jakiejś automatycznej metody na robienie tego.
@krokietowy A czy w typescripcie masz funkcje czy klasy z metodami? Bo Dekoratory typescriptowe tylko do metod można podłączyć - https://www.typescriptlang.org/docs/handbook/decorators.html
Documentation - DecoratorsTypeScript Decorators overviewTypescriptlang