python-internals

Jak działa dekorator @ property w Pythonie?

Chciałbym zrozumieć, jak działa Wbudowana Funkcja property. Myli mnie to, że property może być również używany jako dekorator ... x = value @x.deleter def x(self): del self._x Jak powstają w tym przypadku dekoratory x.setter i x.deleter?

Czy statyczne zmienne klas są możliwe?

Czy możliwe jest posiadanie statycznych zmiennych klas lub metod w Pythonie? Jaka składnia jest wymagana, aby to zrobić?

Jak działa dekorator @ property?

Chciałbym zrozumieć, jak działa Wbudowana Funkcja property. Myli mnie to, że property może być również używany jako dekorator ... @x.deleter def x(self): del self._x I jak powstają dekoratory x.setter i x.deleter? Jestem zdezorientowany.

Dlaczego "10000000000000000000 w zakresie (100000000000000001)" jest tak szybki w Pythonie 3?

Rozumiem, że range() funkcja, która jest w rzeczywistości typem obiektu w Pythonie 3 , generuje swoją zawartość w locie, podo ... acji xrange w Pythonie 2). Odpowiedzi by poke i by wim podaj odpowiedni kod źródłowy C i wyjaśnienia dla zainteresowanych.

Co to jest globalna blokada interpretera (Gil) w CPython?

Co to jest globalna blokada interpretera i dlaczego jest to problem? Wokół usuwania GIL z Pythona zrobiło się dużo hałasu i ... ałem kompilatora ani interpretera, więc nie bądź oszczędny w szczegółach, prawdopodobnie będę potrzebował ich do zrozumienia.

Znajdowanie kodu źródłowego wbudowanych funkcji Pythona?

Czy istnieje sposób, aby zobaczyć, jak wbudowane funkcje działają w Pythonie? Nie chodzi mi tylko o to, jak z nich korzystać, ale także o to, jak zostały zbudowane, co kryje się za kodemsortowane lub wylicz itd...?

Czy słowniki są uporządkowane w Pythonie 3.6+?

Słowniki są uporządkowane w Pythonie 3.6 (przynajmniej pod implementacją CPython) w przeciwieństwie do poprzednich wcieleń. W ... ez Raymonda Hettingera .) Update Grudzień 2017: dicts utrzymanie zamówienia wstawiania jest gwarantowane dla Pythona 3.7

Kiedy del jest przydatny w Pythonie?

Nie mogę wymyślić żadnego powodu, dla którego python potrzebuje słowa kluczowego del (a większość języków wydaje się nie mieć ... todę del. Czy Jest jakiś powód, aby trzymać del w Pythonie, czy jest to pozostałość po Pythonowych dniach przed-śmieciowych?

Jak zaimplementowana jest lista Pythona?

Czy jest to lista linkowana, tablica? Szukałem i znalazłem tylko ludzi zgadujących. Moja wiedza na temat C nie jest wystarczająco dobra, aby spojrzeć na kod źródłowy.

Czy krotki są bardziej wydajne niż listy w Pythonie?

Czy istnieje jakaś różnica w wydajności między krotkami i listami, jeśli chodzi o tworzenie instancji i pobieranie elementów?

Dostęp do zmiennych klasy z listy w definicji klasy

Jak uzyskać dostęp do innych zmiennych klasy z listy w definicji klasy? W Pythonie 2 działa to samo, ale w Pythonie 3 nie dz ... # ... ]] W tym przykładzie, apply() byłoby przyzwoitym obejściem, ale niestety zostało ono usunięte z Pythona 3.

czas.sen-śpi wątek czy proces?

W Pythonie dla * nix, czy time.sleep() blokuje wątek lub proces?

Dlaczego iteracja nad małym ciągiem jest wolniejsza niż mała lista?

Bawiłem się timeit i zauważyłem, że proste zrozumienie listy przez mały ciąg zajmuje więcej czasu niż wykonanie tej samej ope ... 8 >>> timeit("[x for x in ['a', 'b', 'c']]") 1.5286479570345861 Co się dzieje na niższym poziomie, co to powoduje?

Dlaczego kolejność w słownikach i zestawach jest dowolna?

Nie rozumiem, jak zapętlanie słownika lub zestawu w Pythonie odbywa się w' arbitralnej ' kolejności. To znaczy, to jest języ ... akiś algorytm, który decyduje, która część słownika lub zestawu zostanie wybrana, pierwsza, druga i tak dalej. Co mi umyka?

O co chodzi z cache integer utrzymywanym przez interpreter?

Po zapoznaniu się z kodem źródłowym Pythona, dowiaduję się, że utrzymuje on tablicę PyInt_Objects w zakresie od int(-5) do in ... umieć źródło w PyAST_Compile i PyEval_EvalCode, więc Jestem tu, aby prosić o pomoc, będę wdzięczny, jeśli ktoś da podpowiedź?

Dlaczego x * * 4.0 jest szybszy niż x * * 4 w Pythonie 3?

Dlaczego x**4.0 jest szybszy niż x**4? Używam CPython 3.5.2. $ python -m timeit "for x in range(100):" " x**4.0" 10000 loo ... się to poza pętlą. Sprawdziłem i sytuacja występuje tylko (z tego co widziałem) kiedy baza jest podniesiona. Jakiś pomysł?

Jak dokładnie jest uruchamiany bajtowy Kod Pythona w CPython?

Staram się zrozumieć, jak działa Python (ponieważ używam go cały czas!). Z tego co wiem, kiedy uruchamiasz coś takiego jak py ... przekonwertowany na kod maszynowy? Czy interpreter Pythona jest już w kodzie maszynowym, więc mój skrypt nigdy nie musi być?

Jak nadpisać operacje kopiowania / deepcopy dla obiektu Pythona?

Rozumiem różnicę między copy A deepcopy w module kopiowania. Wcześniej z powodzeniem używałem copy.copy i copy.deepcopy, ale ... ób implementacji metod copy i deepcopy na tym obiekcie w celu zapewnienia copy.copy i copy.deepcopy odpowiedniego zachowania?

Jak wymiana członów w krotkach (a,b)=(b,a) działa wewnętrznie?

In [55]: a = 5 In [56]: b = 6 In [57]: (a, b) = (b, a) In [58]: a Out[58]: 6 In [59]: b Out[59]: 5 Jak to zamiana wartości a i b działa wewnętrznie? Zdecydowanie nie używa zmiennej temp.