Als «cpython» getaggte Fragen

Die Referenzimplementierung der Programmiersprache Python. Verwenden Sie dieses Tag für Fragen, die für diese Implementierung spezifisch sind. Allgemeine Python-Fragen sollten nur mit "Python" gekennzeichnet werden.



9
Python gegen Cpython
Was ist das für eine Aufregung um Python und CPython (Jython, IronPython) ? , ich verstehe es nicht: python.org erwähnt, dass CPython ist: Die "traditionelle" Implementierung von Python (Spitzname CPython) In einer weiteren Frage zum Stapelüberlauf wird Folgendes erwähnt: CPython ist der Standard-Bytecode-Interpreter von Python, der in C geschrieben ist. …
447 python  cpython 

2
Warum sind einige Float <Integer-Vergleiche viermal langsamer als andere?
Beim Vergleich von Floats mit ganzen Zahlen dauert die Auswertung einiger Wertepaare viel länger als bei anderen Werten ähnlicher Größe. Beispielsweise: &gt;&gt;&gt; import timeit &gt;&gt;&gt; timeit.timeit("562949953420000.7 &lt; 562949953421000") # run 1 million times 0.5387085462592742 Wenn der Gleitkomma oder die Ganzzahl jedoch um einen bestimmten Betrag kleiner oder größer wird, läuft …

5
Wie wird set () implementiert?
Ich habe Leute sagen sehen, dass setObjekte in Python eine O (1) -Mitgliedschaftsprüfung haben. Wie werden sie intern implementiert, um dies zu ermöglichen? Welche Art von Datenstruktur wird verwendet? Welche weiteren Auswirkungen hat diese Implementierung? Jede Antwort hier war wirklich aufschlussreich, aber ich kann nur eine akzeptieren, also werde ich …


3
Warum ist es langsamer, über eine kleine Zeichenfolge zu iterieren als über eine kleine Liste?
Ich spielte mit Timeit herum und bemerkte, dass das einfache Verstehen einer Liste über eine kleine Zeichenfolge länger dauerte als das Ausführen derselben Operation für eine Liste kleiner einzelner Zeichenfolgen. Irgendeine Erklärung? Es ist fast 1,35-mal so viel Zeit. &gt;&gt;&gt; from timeit import timeit &gt;&gt;&gt; timeit("[x for x in 'abc']") …


10
IronPython vs. Python .NET
Ich möchte über Python-Code auf einige in C # geschriebene .NET-Assemblys zugreifen. Eine kleine Untersuchung ergab, dass ich zwei Möglichkeiten habe: IronPython mit integrierter .NET-Schnittstellenfunktion / -unterstützung Python mit dem Python .NET- Paket Was sind die Kompromisse zwischen beiden Lösungen?



2
Warum behalten Python-Sets die Einfügereihenfolge nicht bei?
Ich war kürzlich überrascht zu entdecken, dass Diktate zwar die Einfügereihenfolge in Python 3.7+ beibehalten, Sets jedoch nicht: &gt;&gt;&gt; d = {'a': 1, 'b': 2, 'c': 3} &gt;&gt;&gt; d {'a': 1, 'b': 2, 'c': 3} &gt;&gt;&gt; d['d'] = 4 &gt;&gt;&gt; d {'a': 1, 'b': 2, 'c': 3, 'd': 4} &gt;&gt;&gt; …
12 python  set  cpython 

4
Beim Tupel-Slicing wird kein neues Objekt zurückgegeben, im Gegensatz zum Listen-Slicing
In Python (2 und 3). Immer wenn wir List Slicing verwenden, wird ein neues Objekt zurückgegeben, z. l1 = [1,2,3,4] print(id(l1)) l2 = l1[:] print(id(l2)) Ausgabe &gt;&gt;&gt; 140344378384464 &gt;&gt;&gt; 140344378387272 Wenn dasselbe mit Tupel wiederholt wird, wird dasselbe Objekt zurückgegeben, z. t1 = (1,2,3,4) t2 = t1[:] print(id(t1)) print(id(t2)) Ausgabe …
12 python  list  tuples  slice  cpython 

2
Warum überschreibt das Festlegen eines Deskriptors für eine Klasse den Deskriptor?
Einfache Reproduktion: class VocalDescriptor(object): def __get__(self, obj, objtype): print('__get__, obj={}, objtype={}'.format(obj, objtype)) def __set__(self, obj, val): print('__set__') class B(object): v = VocalDescriptor() B.v # prints "__get__, obj=None, objtype=&lt;class '__main__.B'&gt;" B.v = 3 # does not print "__set__", evidently does not trigger descriptor B.v # does not print anything, we overwrote …
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.