Context Klasse
Eine isolierte Q#-Dolmetscherumgebung.
Ein Kontext stellt eine eigenständige Q#-Ausführungsumgebung bereit, in der Code von anderen Kontextinstanzen ausgewertet, kompiliert und isoliert ausgeführt wird. Jeder Kontext verwaltet einen eigenen Codenamespace.
Ein Kontext verfügt über ein code-Attribut, das ein Python Modul ist, das alle in diesem Kontext definierten Q#-Vorgänge und -Typen enthält. Auf diese Weise können Sie Q#-Vorgänge aus Python aufrufen.
Beispiel:
ctx = qdk.Context()
ctx.eval("operation Main() : Result { use q = Qubit(); X(q); MResetZ(q) }")
assert ctx.run("Main()", 2) == [qdk.Result.One, qdk.Result.One]
assert ctx.code.Main() == qdk.Result.One
Initialisiert einen neuen isolierten Q#-Kontext.
Konstruktor
Context(*, target_profile: TargetProfile = TargetProfile.Unrestricted, target_name: str | None = None, project_root: str | None = None, language_features: List[str] | None = None, _trace_circuit: bool | None = None, _is_global_context: bool = False)
Nur Schlüsselwortparameter
| Name | Beschreibung |
|---|---|
|
target_profile
|
Durch Festlegen des Zielprofils kann der Q#-Interpreter Programme generieren, die mit einem bestimmten Ziel kompatibel sind. Siehe TargetProfile. Standardwert: Unrestricted
|
|
target_name
|
Ein optionaler Name des Zielcomputers, der zum Ableiten der kompatiblen target_profile Einstellung verwendet werden soll. Standardwert: None
|
|
project_root
|
Optionaler Pfad zu einem Stammverzeichnis mit einem Q#-Projekt, das eingeschlossen werden soll. Sie muss ein qsharp.json Projektmanifest enthalten. Standardwert: None
|
|
language_features
|
Eine optionale Liste der zu aktivierenden Sprachfeatures. Diese entsprechen experimentellen oder Vorschau-Q#-Sprachfeatures. Gültige Werte sind:
das Bereichs-Qubit-Zuordnungsblockformular ( Standardwert: None
|
|
_trace_circuit
|
Standardwert: None
|
|
_is_global_context
|
Standardwert: False
|
Methoden
| circuit |
Synthetisiert einen Schaltkreis für ein Q#-Programm. Entweder ein Eintragsausdruck oder ein Vorgang muss angegeben werden. |
| compile |
Kompiliert den Q#-Quellcode in ein Programm, das an ein Ziel übermittelt werden kann. Entweder ein Eintragsausdruck oder ein aufrufbarer Ausdruck mit Argumenten muss angegeben werden. Beispiel: |
| dump_machine |
Gibt den geringen Zustandsvektor des Simulators als StateDump -Objekt zurück. |
| eval |
Wertet den Q#-Quellcode aus. Die Ausgabe wird in der Konsole gedruckt. |
| get_target_profile |
Gibt das Zielprofil für diesen Kontext zurück. |
| import_openqasm |
Importiert OpenQASM-Quellcode in den Dolmetscher dieses Kontexts. |
| logical_counts |
Extrahiert die Anzahl der logischen Ressourcen aus dem Q#-Quellcode. Entweder ein Eintragsausdruck oder ein aufrufbarer Ausdruck mit Argumenten muss angegeben werden. |
| run |
Führt den angegebenen Q#-Ausdruck für die angegebene Anzahl von Aufnahmen aus. Jeder Schuss verwendet eine unabhängige Instanz des Simulators. |
| set_classical_seed |
Legt den Ausgangswert für den Zufallszahlengenerator fest, der für klassische Zufallszahlenvorgänge der Standardbibliothek verwendet wird. Dies gilt für alle in diesem Kontext ausgeführten, kompilierten oder geschätzten Q#-Code. |
| set_quantum_seed |
Legt den Samen für den Zufallszahlengenerator fest, der für Quantenmessungen verwendet wird. Dies gilt für alle in diesem Kontext ausgeführten, kompilierten oder geschätzten Q#-Code. |
circuit
Synthetisiert einen Schaltkreis für ein Q#-Programm. Entweder ein Eintragsausdruck oder ein Vorgang muss angegeben werden.
circuit(entry_expr: str | Callable | GlobalCallable | Closure | None = None, *args, operation: str | None = None, generation_method: CircuitGenerationMethod | None = None, max_operations: int | None = None, source_locations: bool = False, group_by_scope: bool = True, prune_classical_qubits: bool = False) -> Circuit
Parameter
| Name | Beschreibung |
|---|---|
|
entry_expr
|
Ein Eintragsausdruck. Alternativ kann eine aufrufbare Datei bereitgestellt werden, die ein Q#-Aufruf erfordern muss. Standardwert: None
|
|
*args
Erforderlich
|
Die Argumente, die an die aufrufbare Übergeben werden sollen, wenn eines angegeben wird. |
Nur Schlüsselwortparameter
| Name | Beschreibung |
|---|---|
|
operation
|
Der zu synthetisierende Vorgang. Dies kann ein Name eines Vorgangs oder eines Lambda-Ausdrucks sein. Der Vorgang darf nur Qubits oder Arrays von Qubits als Parameter verwenden. Standardwert: None
|
|
generation_method
|
Die Methode, die für die Schaltungsgenerierung verwendet werden soll.
ClassicalEval wertet den klassischen Kontrollfluss zur Schaltkreisgenerierung aus.
Simulate führt eine vollständige Simulation aus, um den Schaltkreis nachzuverfolgen.
Static verwendet teilauswertung und erfordert ein Nichtzielprofil Standardwert: None
|
|
max_operations
|
Die maximale Anzahl von Vorgängen, die in den Schaltkreis eingeschlossen werden sollen. Standardwerte, die Standardwert: None
|
|
source_locations
|
Wenn Standardwert: False
|
|
group_by_scope
|
Wenn Standardwert: True
|
|
prune_classical_qubits
|
Wenn Standardwert: False
|
Gibt zurück
| Typ | Beschreibung |
|---|---|
|
<xref:Circuit>
|
Der synthetisierte Schaltkreis. |
Ausnahmen
| Typ | Beschreibung |
|---|---|
|
Wenn ein Fehler auftritt, der den Schaltkreis synthesiert. |
compile
Kompiliert den Q#-Quellcode in ein Programm, das an ein Ziel übermittelt werden kann. Entweder ein Eintragsausdruck oder ein aufrufbarer Ausdruck mit Argumenten muss angegeben werden.
Beispiel:
compile(entry_expr: str | Callable | GlobalCallable | Closure, *args) -> QirInputData
Parameter
| Name | Beschreibung |
|---|---|
|
entry_expr
Erforderlich
|
Der Q#-Ausdruck, der als Einstiegspunkt für das Programm verwendet wird. Alternativ kann eine aufrufbare Datei bereitgestellt werden, die ein Q#-Aufruf erfordern muss. |
|
*args
Erforderlich
|
Die Argumente, die an die aufrufbare Übergeben werden sollen, wenn eines angegeben wird. |
Gibt zurück
| Typ | Beschreibung |
|---|---|
|
<xref:QirInputData>
|
Das kompilierte Programm. Dient |
dump_machine
Gibt den geringen Zustandsvektor des Simulators als StateDump -Objekt zurück.
dump_machine() -> StateDump
Gibt zurück
| Typ | Beschreibung |
|---|---|
|
Der Zustand des Simulators. |
eval
Wertet den Q#-Quellcode aus.
Die Ausgabe wird in der Konsole gedruckt.
eval(source: str, *, save_events: bool = False) -> Any
Parameter
| Name | Beschreibung |
|---|---|
|
source
Erforderlich
|
Der zu bewertende Q#-Quellcode. |
Nur Schlüsselwortparameter
| Name | Beschreibung |
|---|---|
|
save_events
|
Wenn true, werden alle Ausgaben gespeichert und zurückgegeben. Wenn falsch, werden sie gedruckt. Standardwert: False
|
Gibt zurück
| Typ | Beschreibung |
|---|---|
|
Der wert, der von der letzten Anweisung im Quellcode oder der gespeicherten Ausgabe zurückgegeben wird, wenn |
Ausnahmen
| Typ | Beschreibung |
|---|---|
|
Wenn ein Fehler beim Auswerten des Quellcodes vorliegt. |
get_target_profile
Gibt das Zielprofil für diesen Kontext zurück.
get_target_profile() -> TargetProfile
import_openqasm
Importiert OpenQASM-Quellcode in den Dolmetscher dieses Kontexts.
import_openqasm(source: str, **kwargs: Any) -> Any
Parameter
| Name | Beschreibung |
|---|---|
|
source
Erforderlich
|
Ein OpenQASM-Programm oder -Fragment. |
|
**kwargs
Erforderlich
|
Zusätzliche Schlüsselwortargumente. Allgemeine Optionen:
|
Gibt zurück
| Typ | Beschreibung |
|---|---|
|
Der wert, der von der letzten Anweisung im Quellcode zurückgegeben wird. |
Ausnahmen
| Typ | Beschreibung |
|---|---|
|
Wenn beim Generieren, Analysieren oder Analysieren der OpenQASM-Quelle ein Fehler auftritt. |
|
|
Wenn beim Kompilieren des Programms ein Fehler auftritt. |
logical_counts
Extrahiert die Anzahl der logischen Ressourcen aus dem Q#-Quellcode. Entweder ein Eintragsausdruck oder ein aufrufbarer Ausdruck mit Argumenten muss angegeben werden.
logical_counts(entry_expr: str | Callable | GlobalCallable | Closure, *args) -> LogicalCounts
Parameter
| Name | Beschreibung |
|---|---|
|
entry_expr
Erforderlich
|
Der Eintragsausdruck. Alternativ kann eine aufrufbare Datei bereitgestellt werden, die ein Q#-Aufruf erfordern muss. |
Gibt zurück
| Typ | Beschreibung |
|---|---|
|
Programmressourcen in Bezug auf die Anzahl der logischen Toren. |
run
Führt den angegebenen Q#-Ausdruck für die angegebene Anzahl von Aufnahmen aus. Jeder Schuss verwendet eine unabhängige Instanz des Simulators.
run(entry_expr: str | Callable | GlobalCallable | Closure, shots: int, *args, on_result: Callable[[ShotResult], None] | None = None, save_events: bool = False, noise: Tuple[float, float, float] | PauliNoise | BitFlipNoise | PhaseFlipNoise | DepolarizingNoise | NoiseConfig | None = None, qubit_loss: float | None = None, seed: int | None = None, type: Literal['sparse', 'clifford'] | None = None, num_qubits: int | None = None) -> List[Any]
Parameter
| Name | Beschreibung |
|---|---|
|
entry_expr
Erforderlich
|
Der Eintragsausdruck. Alternativ kann eine aufrufbare Datei bereitgestellt werden, die ein Q#-Aufruf erfordern muss. |
|
shots
Erforderlich
|
Die Anzahl der auszuführenden Aufnahmen. |
|
*args
Erforderlich
|
Die Argumente, die an die aufrufbare Übergeben werden sollen, wenn eines angegeben wird. |
|
on_result
Erforderlich
|
Eine Rückruffunktion, die mit jedem Ergebnis aufgerufen wird. |
|
save_events
Erforderlich
|
Wenn true, wird die Ausgabe der einzelnen Aufnahmen gespeichert. Wenn falsch, werden sie gedruckt. |
|
noise
Erforderlich
|
Das in der Simulation zu verwendende Rauschen. |
|
qubit_loss
Erforderlich
|
Die Wahrscheinlichkeit eines Qubitverlusts in der Simulation. |
|
seed
Erforderlich
|
Der zu verwendende Seed für den Zufallszahlengenerator in der Simulation, falls vorhanden. |
|
type
Erforderlich
|
Der zu verwendende Simulatortyp. Wenn nicht angegeben, wird die standardmäßige Vektorsimulation mit geringem Zustand verwendet. |
|
num_qubits
Erforderlich
|
Die Anzahl der qubits, die für den Simulationstyp "clifford" verwendet werden sollen. Wenn nicht angegeben, geht der Clifford-Simulator von einer Standardeinstellung von 1000 Qubits aus. |
Nur Schlüsselwortparameter
| Name | Beschreibung |
|---|---|
|
on_result
|
Standardwert: None
|
|
save_events
|
Standardwert: False
|
|
noise
|
Standardwert: None
|
|
qubit_loss
|
Standardwert: None
|
|
seed
|
Standardwert: None
|
|
type
|
Standardwert: None
|
|
num_qubits
|
Standardwert: None
|
Gibt zurück
| Typ | Beschreibung |
|---|---|
|
Eine Liste der Ergebnisse oder Laufzeitfehler. Ist |
Ausnahmen
| Typ | Beschreibung |
|---|---|
|
Wenn beim Interpretieren der Eingabe ein Fehler auftritt. |
|
|
Wenn die Anzahl der Aufnahmen kleiner als 1 ist. |
set_classical_seed
Legt den Ausgangswert für den Zufallszahlengenerator fest, der für klassische Zufallszahlenvorgänge der Standardbibliothek verwendet wird. Dies gilt für alle in diesem Kontext ausgeführten, kompilierten oder geschätzten Q#-Code.
set_classical_seed(seed: int | None) -> None
Parameter
| Name | Beschreibung |
|---|---|
|
seed
Erforderlich
|
Der zu verwendende Seed für den klassischen Zufallszahlengenerator. Wenn keine, wird der Samen aus Entropie generiert. |
set_quantum_seed
Legt den Samen für den Zufallszahlengenerator fest, der für Quantenmessungen verwendet wird. Dies gilt für alle in diesem Kontext ausgeführten, kompilierten oder geschätzten Q#-Code.
set_quantum_seed(seed: int | None) -> None
Parameter
| Name | Beschreibung |
|---|---|
|
seed
Erforderlich
|
Der seed to use for the quantum random number generator. Wenn keine, wird der Samen aus Entropie generiert. |
Attribute
code
code: Any