Почему python не видит членов класса QuantCircuit qiskit - PullRequest
0 голосов
/ 16 февраля 2019

Я пытаюсь научиться программировать на квантовых компьютерах.Я установил qiskit в VS Code (все расширения qiskit доступны в VS Code market), компилятор python (из Vs Code market "Python" и "Python for VSCode").Я настроил свой qikit API для правильной работы

Когда я запускаю пример, я получаю сообщение об ошибке: «Экземпляр QuantumCircuit не имеет члена h»

Что мне делать?

enter image description here

Код:

from qiskit import ClassicalRegister, QuantumRegister
from qiskit import QuantumCircuit, execute

q = QuantumRegister(2)
c = ClassicalRegister(2)
qc = QuantumCircuit(q)
qc.h(q[0]) 
qc.cx(q[0], q[1])
qc.measure(q, c)

job_sim = execute(qc, 'local_qasm_simulator')

sim_result = job_sim.result()

print(sim_result.get_counts(qc))

======================= Та же ошибка после добавления комментария # pylint: disable=no-member

1 Ответ

0 голосов
/ 16 февраля 2019

Ошибки, о которых идет речь, исходят от pylint, linter, а не от самого python.Хотя Pylint довольно умный, некоторые конструкции (особенно те, которые включают динамически добавленные свойства) не поддаются его пониманию.Когда вы сталкиваетесь с подобными ситуациями, лучший способ действий состоит из двух частей:

  1. Проверьте документы, код и т. Д., Чтобы удостовериться в правильности написанного вами кода (т. Е. Убедитесь, чторезультат линтера - ложное срабатывание)
  2. Сообщите линтеру, что вы знаете, что делаете, и он должен игнорировать ложное срабатывание

user2357112 позаботился о первом шаге в комментарияхвыше, демонстрируя, что свойство динамически устанавливается другой частью библиотеки.

Второй шаг может быть выполнен для pylint путем добавления комментария после каждой из строк с ошибками, говорящих ему об изменении этой конкретной проверки для этогоконкретная строка:

qc.h(q[0])  # pylint: disable=no-member
...