Jak działa Python pod maską? Stosuj w przypadku pytań dotyczących (na przykład) podjętych decyzji projektowych oraz wewnętrznych struktur danych i zastosowanych algorytmów.
Rozumiem, że range()funkcja, która w Pythonie 3 jest typem obiektu , generuje zawartość w locie, podobnie jak generator. W takim przypadku oczekiwałbym, że następujący wiersz zajmie nadmiernie dużo czasu, ponieważ w celu ustalenia, czy 1 biliard mieści się w zakresie, należałoby wygenerować biliardy: 1000000000000000 in range(1000000000000001) Co więcej: wydaje się, …
Chciałbym zrozumieć, jak propertydziała funkcja wbudowana . To, co mnie dezorientuje, to fakt, że propertymożna go również używać jako dekoratora, ale wymaga tylko argumentów, gdy jest używany jako funkcja wbudowana, a nie jako dekorator. Ten przykład pochodzi z dokumentacji : class C(object): def __init__(self): self._x = None def getx(self): return …
Przekaż opinię na temat przepełnienia stosu w : Присваивание целых (int) в Питоне Dlaczego poniższe zachowania zachowują się nieoczekiwanie w Pythonie? >>> a = 256 >>> b = 256 >>> a is b True # This is an expected result >>> a = 257 >>> b = 257 >>> a …
Słowniki są uporządkowane w Pythonie 3.6 (przynajmniej w ramach implementacji CPython), inaczej niż w poprzednich wcieleniach. To wydaje się być istotną zmianą, ale jest to tylko krótki akapit w dokumentacji . Jest opisywany jako szczegół implementacji CPython, a nie jako funkcja językowa, ale sugeruje również, że może stać się standardem …
Naprawdę nie mogę wymyślić żadnego powodu, dla którego python potrzebuje delsłowa kluczowego (a większość języków wydaje się nie mieć podobnego słowa kluczowego). Na przykład zamiast usuwać zmienną, można ją po prostu przypisać None. Podczas usuwania ze słownika delmożna dodać metodę. Czy jest jakiś powód, aby pozostawać delw Pythonie, czy też …
Porównując liczby zmiennoprzecinkowe z liczbami całkowitymi, ocena niektórych par zajmuje znacznie więcej czasu niż innych wartości o podobnej wielkości. Na przykład: >>> import timeit >>> timeit.timeit("562949953420000.7 < 562949953421000") # run 1 million times 0.5387085462592742 Ale jeśli liczba zmiennoprzecinkowa lub liczba całkowita zostanie zmniejszona lub powiększona o określoną wartość, porównanie przebiega …
>>> timeit.timeit("'x' in ('x',)") 0.04869917374131205 >>> timeit.timeit("'x' == 'x'") 0.06144205736110564 Działa również dla krotek z wieloma elementami, obie wersje wydają się rosnąć liniowo: >>> timeit.timeit("'x' in ('x', 'y')") 0.04866674801541748 >>> timeit.timeit("'x' == 'x' or 'x' == 'y'") 0.06565782838087131 >>> timeit.timeit("'x' in ('y', 'x')") 0.08975995576448526 >>> timeit.timeit("'x' == 'y' or 'x' …
Co to jest globalna blokada tłumacza i dlaczego stanowi problem? Podczas usuwania GIL z Pythona powstało wiele hałasu i chciałbym zrozumieć, dlaczego jest to takie ważne. Nigdy sam nie napisałem kompilatora ani tłumacza, więc nie bądź oszczędny w szczegółach, prawdopodobnie potrzebuję ich do zrozumienia.
Czy to jest połączona lista, tablica? Rozejrzałem się i znalazłem tylko zgadujących ludzi. Moja znajomość języka C nie jest wystarczająco dobra, aby spojrzeć na kod źródłowy.
W jaki sposób uzyskujesz dostęp do innych zmiennych klasy z listy złożonej w definicji klasy? Poniższe działa w Pythonie 2, ale kończy się niepowodzeniem w Pythonie 3: class Foo: x = 5 y = [x for i in range(1)] Python 3.2 podaje błąd: NameError: global name 'x' is not defined …
Dlaczego jest x**4.0szybszy niż x**4? Używam CPython 3.5.2. $ python -m timeit "for x in range(100):" " x**4.0" 10000 loops, best of 3: 24.2 usec per loop $ python -m timeit "for x in range(100):" " x**4" 10000 loops, best of 3: 30.6 usec per loop Próbowałem zmienić siłę, o …
Utworzyłem dwie listy l1i l2, ale każda z inną metodą tworzenia: import sys l1 = [None] * 10 l2 = [None for _ in range(10)] print('Size of l1 =', sys.getsizeof(l1)) print('Size of l2 =', sys.getsizeof(l2)) Ale wyjście mnie zaskoczyło: Size of l1 = 144 Size of l2 = 192 Lista …
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.