Uczę się #python i natrafiłem na dziwną konstrukcję w ustawieniach Django:
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': BASE_DIR / 'db.sqlite3', } } Dokładniej "/" między BASEDIR a stringiem. Wiem, że ukośnik może rozdzielać nowe linie, ale jakie zastosowanie ma tutaj?
@croppz: @ProfesorBigos: @CancerLight: okej, no to się wyjaśniło. ( ͡°͜ʖ͡°) Nie wiedziałem, że do takiego stopnia można modyfikować działanie operatorów.
@Quiz: można dużo bardziej, spójrz w dokumentacji jakie jeszcze ciekawe rzeczy zaczynają się od __ ( ͡°͜ʖ͡°)
A jakbyś chciał poczytać coś więcej to polecam fluent python, bez problemów znajdziesz pdfa. Trochę już co prawda nieaktualne, ale zmiany z ostatnich paru releasów można potem nadgonić w parę godzin.
@Quiz: To jest jeden z najczęstszych arugmenentow przeciwko przeciążaniu operatorów, bo to wprowadza zamieszanie xD Często w projektach mielismy konwencję które tego zakazywała.
DATABASES = {'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': BASE_DIR / 'db.sqlite3',
}
}
Dokładniej "/" między BASEDIR a stringiem.
Wiem, że ukośnik może rozdzielać nowe linie, ale jakie zastosowanie ma tutaj?
#programowanie
@Quiz: a czym jest BASEDIR? To nie będzie przypadkiem jakiś pathlib albo coś podobnego?
BASE_DIRto jest obiekt klasy pathlib.Path, sprawdź w dokumentacji jak dla tej klasy działa operator/źródło: comment_1626298070NTvRF4wyyjTm6siMY56yzo.jpg
Pobierz/, bez jakiegoś kontekstu ciężko powiedzieć.Nie wiedziałem, że do takiego stopnia można modyfikować działanie operatorów.
__( ͡° ͜ʖ ͡°)A jakbyś chciał poczytać coś więcej to polecam fluent python, bez problemów znajdziesz pdfa. Trochę już co prawda nieaktualne, ale zmiany z ostatnich paru releasów można potem nadgonić w parę godzin.
Często w projektach mielismy konwencję które tego zakazywała.
os.path.join()i wtedy jedziesz ze sciezka dostepu.