2012-05-07 3 views
0

У меня очень длинный код на Python, поэтому я не могу написать все это здесь. Во всяком случае, проблема в том, что я рисую функцию в коде с помощью команды semilogx, и все работает нормально. Однако, если переключиться на команду plot я получил эту ошибку:Ошибка Python, тип 'bool' не вызываемый

TypeError: «BOOL» объект не вызываемая

Как вы думаете, может вызвать проблемы?

Кажется, что везде, где я использую команду plot в коде, я получаю ту же ошибку. Я попытался откладывая первую переменную, которую я использую в своем коде:

f=loadtxt(folder_out+"stars/stars"+str(output)+".txt",skiprows=2) 
ids=f[:,0] 
mass_star=f[:,1] # mass in Msun 
x=f[:,2] 
y=f[:,3] 
z=f[:,4] 
age=f[:,5] # age in Myr 

plot(x,y,'.') 

И последняя строка дает мне ошибку. Я уверен, что прочитал переменную из файла, у них одинаковое измерение.

+3

Можете ли вы хотя бы вставить строку кода, которая вызывает ошибку? – MAK

+9

Опубликовать трассировать пожалуйста. –

+1

Вы случайно используете логическую переменную с именем 'str' или' round'? –

ответ

8

Ваша ошибка указывает на то, что plot не является функцией, как вы думаете, что это, но bool (то есть. True или False, результатом логического выражения). Это может быть по нескольким причинам:

  • Вы явно присвоить bool переменной с именем plot (возможно в цикле - помните, что петли и if заявления в Python не создать новую область)
  • You есть куча from whatever import * заявлений, один из которых импортирует имя plot который затирания один из pylab (это может быть даже from whatever import plot, что вы не заметили)

вы могли бы попытаться сузить ее вниз простой текстовый поиск для plot, чтобы убедиться, что вы делаете это явно. Вы также можете удалить импорт и разбить свой сценарий до тех пор, пока он не будет работать так, как ожидалось, и попытайтесь определить проблемную строку.

+0

Спасибо, это ответ, который я искал. – Brian

+1

@ Matteo - что это было? :) – detly

+1

У меня был переменный с именем plot. Мне стыдно. – Brian

Смежные вопросы