Context Kelas
Lingkungan penerjemah Q# yang terisolasi.
Konteks menyediakan lingkungan eksekusi Q# mandiri di mana kode dievaluasi, dikompilasi, dan dijalankan dalam isolasi dari instans Konteks lainnya. Setiap Konteks mempertahankan namespace kodenya sendiri.
Konteks memiliki atribut code yang merupakan modul Python yang berisi semua operasi dan jenis Q# yang ditentukan dalam konteks ini. Ini memungkinkan Anda untuk memanggil operasi Q# dari Python.
Contoh:
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
Menginisialisasi konteks Q# baru yang terisolasi.
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)
Parameter Kata Kunci-Saja
| Nama | Deskripsi |
|---|---|
|
target_profile
|
Mengatur profil target memungkinkan penerjemah Q# menghasilkan program yang kompatibel dengan target tertentu. Lihat TargetProfile. Nilai default: Unrestricted
|
|
target_name
|
Nama opsional komputer target yang akan digunakan untuk menyimpulkan pengaturan target_profile yang kompatibel. Nilai default: None
|
|
project_root
|
Jalur opsional ke direktori akar dengan proyek Q# untuk disertakan. Ini harus berisi manifes proyek qsharp.json. Nilai default: None
|
|
language_features
|
Daftar opsional bendera fitur bahasa untuk diaktifkan. Ini sesuai dengan fitur bahasa Q# eksperimental atau pratinjau. Nilai yang valid adalah:
formulir blok alokasi kubit tercakup ( Nilai default: None
|
|
_trace_circuit
|
Nilai default: None
|
|
_is_global_context
|
Nilai default: False
|
Metode
| circuit |
Mensintesis sirkuit untuk program Q#. Ekspresi entri atau operasi harus disediakan. |
| compile |
Mengkompilasi kode sumber Q# ke dalam program yang dapat dikirimkan ke target. Ekspresi entri atau yang dapat dipanggil dengan argumen harus disediakan. Contoh: |
| dump_machine |
Mengembalikan vektor status jarang simulator sebagai objek StateDump. |
| eval |
Mengevaluasi kode sumber Q#. Output dicetak ke konsol. |
| get_target_profile |
Mengembalikan profil target untuk Konteks ini. |
| import_openqasm |
Mengimpor kode sumber OpenQASM ke dalam penerjemah konteks ini. |
| logical_counts |
Mengekstrak jumlah sumber daya logis dari kode sumber Q#. Ekspresi entri atau yang dapat dipanggil dengan argumen harus disediakan. |
| run |
Menjalankan ekspresi Q# yang diberikan untuk jumlah bidikan yang diberikan. Setiap bidikan menggunakan instans independen simulator. |
| set_classical_seed |
Mengatur seed untuk generator angka acak yang digunakan untuk operasi nomor acak klasik pustaka standar. Ini berlaku untuk semua kode Q# yang dijalankan, dikompilasi, atau diperkirakan dalam Konteks ini. |
| set_quantum_seed |
Mengatur seed untuk generator angka acak yang digunakan untuk pengukuran kuantum. Ini berlaku untuk semua kode Q# yang dijalankan, dikompilasi, atau diperkirakan dalam Konteks ini. |
circuit
Mensintesis sirkuit untuk program Q#. Ekspresi entri atau operasi harus disediakan.
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
| Nama | Deskripsi |
|---|---|
|
entry_expr
|
Ekspresi entri. Atau, panggilan dapat disediakan, yang harus dapat dipanggil Q#. Nilai default: None
|
|
*args
Diperlukan
|
Argumen yang akan diteruskan ke yang dapat dipanggil, jika disediakan. |
Parameter Kata Kunci-Saja
| Nama | Deskripsi |
|---|---|
|
operation
|
Operasi untuk disintesis. Ini bisa menjadi nama operasi atau ekspresi lambda. Operasi hanya boleh mengambil qubit atau array qubit sebagai parameter. Nilai default: None
|
|
generation_method
|
Metode yang digunakan untuk pembuatan sirkuit.
ClassicalEval mengevaluasi alur kontrol klasik pada waktu pembuatan sirkuit.
Simulate menjalankan simulasi penuh untuk melacak sirkuit.
Static menggunakan evaluasi parsial dan memerlukan profil non-target Nilai default: None
|
|
max_operations
|
Jumlah maksimum operasi yang akan disertakan dalam sirkuit. Default yang Nilai default: None
|
|
source_locations
|
Jika Nilai default: False
|
|
group_by_scope
|
Jika Nilai default: True
|
|
prune_classical_qubits
|
Jika Nilai default: False
|
Mengembalikan
| Jenis | Deskripsi |
|---|---|
|
<xref:Circuit>
|
Sirkuit yang disintesis. |
Pengecualian
| Jenis | Deskripsi |
|---|---|
|
Jika ada kesalahan dalam mensintesis sirkuit. |
compile
Mengkompilasi kode sumber Q# ke dalam program yang dapat dikirimkan ke target. Ekspresi entri atau yang dapat dipanggil dengan argumen harus disediakan.
Contoh:
compile(entry_expr: str | Callable | GlobalCallable | Closure, *args) -> QirInputData
Parameter
| Nama | Deskripsi |
|---|---|
|
entry_expr
Diperlukan
|
Ekspresi Q# yang akan digunakan sebagai titik masuk untuk program. Atau, panggilan dapat disediakan, yang harus dapat dipanggil Q#. |
|
*args
Diperlukan
|
Argumen yang akan diteruskan ke yang dapat dipanggil, jika disediakan. |
Mengembalikan
| Jenis | Deskripsi |
|---|---|
|
<xref:QirInputData>
|
Program yang dikompilasi. Gunakan |
dump_machine
Mengembalikan vektor status jarang simulator sebagai objek StateDump.
dump_machine() -> StateDump
Mengembalikan
| Jenis | Deskripsi |
|---|---|
|
Status simulator. |
eval
Mengevaluasi kode sumber Q#.
Output dicetak ke konsol.
eval(source: str, *, save_events: bool = False) -> Any
Parameter
| Nama | Deskripsi |
|---|---|
|
source
Diperlukan
|
Kode sumber Q# untuk dievaluasi. |
Parameter Kata Kunci-Saja
| Nama | Deskripsi |
|---|---|
|
save_events
|
Jika true, semua output akan disimpan dan dikembalikan. Jika false, mereka akan dicetak. Nilai default: False
|
Mengembalikan
| Jenis | Deskripsi |
|---|---|
|
Nilai yang dikembalikan oleh pernyataan terakhir dalam kode sumber, atau output yang disimpan jika |
Pengecualian
| Jenis | Deskripsi |
|---|---|
|
Jika ada kesalahan saat mengevaluasi kode sumber. |
get_target_profile
Mengembalikan profil target untuk Konteks ini.
get_target_profile() -> TargetProfile
import_openqasm
Mengimpor kode sumber OpenQASM ke dalam penerjemah konteks ini.
import_openqasm(source: str, **kwargs: Any) -> Any
Parameter
| Nama | Deskripsi |
|---|---|
|
source
Diperlukan
|
Program atau fragmen OpenQASM. |
|
**kwargs
Diperlukan
|
Argumen kata kunci tambahan. Opsi umum:
|
Mengembalikan
| Jenis | Deskripsi |
|---|---|
|
Nilai yang dikembalikan oleh pernyataan terakhir dalam kode sumber. |
Pengecualian
| Jenis | Deskripsi |
|---|---|
|
Jika ada kesalahan saat menghasilkan, mengurai, atau menganalisis sumber OpenQASM. |
|
|
Jika ada kesalahan saat mengkompilasi program. |
logical_counts
Mengekstrak jumlah sumber daya logis dari kode sumber Q#. Ekspresi entri atau yang dapat dipanggil dengan argumen harus disediakan.
logical_counts(entry_expr: str | Callable | GlobalCallable | Closure, *args) -> LogicalCounts
Parameter
| Nama | Deskripsi |
|---|---|
|
entry_expr
Diperlukan
|
Ekspresi entri. Atau, panggilan dapat disediakan, yang harus dapat dipanggil Q#. |
Mengembalikan
| Jenis | Deskripsi |
|---|---|
|
Sumber daya program dalam hal jumlah gerbang logis. |
run
Menjalankan ekspresi Q# yang diberikan untuk jumlah bidikan yang diberikan. Setiap bidikan menggunakan instans independen simulator.
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
| Nama | Deskripsi |
|---|---|
|
entry_expr
Diperlukan
|
Ekspresi entri. Atau, panggilan dapat disediakan, yang harus dapat dipanggil Q#. |
|
shots
Diperlukan
|
Jumlah bidikan yang akan dijalankan. |
|
*args
Diperlukan
|
Argumen yang akan diteruskan ke yang dapat dipanggil, jika disediakan. |
|
on_result
Diperlukan
|
Fungsi panggilan balik yang akan dipanggil dengan setiap hasil. |
|
save_events
Diperlukan
|
Jika true, output dari setiap bidikan akan disimpan. Jika false, mereka akan dicetak. |
|
noise
Diperlukan
|
Kebisingan yang digunakan dalam simulasi. |
|
qubit_loss
Diperlukan
|
Probabilitas kehilangan qubit dalam simulasi. |
|
seed
Diperlukan
|
Benih yang digunakan untuk generator angka acak dalam simulasi, jika ada. |
|
type
Diperlukan
|
Jenis simulator yang akan digunakan. Jika tidak ditentukan, simulasi vektor status jarang default akan digunakan. |
|
num_qubits
Diperlukan
|
Jumlah qubit yang digunakan untuk jenis simulasi "clifford". Jika tidak ditentukan, simulator Clifford mengasumsikan default 1000 qubit. |
Parameter Kata Kunci-Saja
| Nama | Deskripsi |
|---|---|
|
on_result
|
Nilai default: None
|
|
save_events
|
Nilai default: False
|
|
noise
|
Nilai default: None
|
|
qubit_loss
|
Nilai default: None
|
|
seed
|
Nilai default: None
|
|
type
|
Nilai default: None
|
|
num_qubits
|
Nilai default: None
|
Mengembalikan
| Jenis | Deskripsi |
|---|---|
|
Daftar hasil atau kesalahan runtime. Jika |
Pengecualian
| Jenis | Deskripsi |
|---|---|
|
Jika ada kesalahan saat menginterpretasikan input. |
|
|
Jika jumlah bidikan kurang dari 1. |
set_classical_seed
Mengatur seed untuk generator angka acak yang digunakan untuk operasi nomor acak klasik pustaka standar. Ini berlaku untuk semua kode Q# yang dijalankan, dikompilasi, atau diperkirakan dalam Konteks ini.
set_classical_seed(seed: int | None) -> None
Parameter
| Nama | Deskripsi |
|---|---|
|
seed
Diperlukan
|
Benih yang digunakan untuk generator angka acak klasik. Jika Tidak Ada, benih akan dihasilkan dari entropi. |
set_quantum_seed
Mengatur seed untuk generator angka acak yang digunakan untuk pengukuran kuantum. Ini berlaku untuk semua kode Q# yang dijalankan, dikompilasi, atau diperkirakan dalam Konteks ini.
set_quantum_seed(seed: int | None) -> None
Parameter
| Nama | Deskripsi |
|---|---|
|
seed
Diperlukan
|
Benih yang digunakan untuk generator angka acak kuantum. Jika Tidak Ada, benih akan dihasilkan dari entropi. |
Atribut
code
code: Any