1

我在 Python 中有很长的代码,所以我不能在这里全部写出来。无论如何,问题是我正在使用semilogx命令在代码中绘制一个函数,并且一切正常。但是,如果我切换到plot命令,我会收到此错误:

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,'.')

最后一行给了我错误。我确定我从文件中读取了变量,它们具有相同的尺寸。

4

1 回答 1

9

您的错误表明这plot不是您认为的函数,而是一个bool(即。Trueor False,布尔表达式的结果)。这可能有几个原因:

  • 您将 a 显式分配给bool名为的变量plot(可能在循环中 - 请记住ifPython 中的循环和语句不会创建新范围)
  • 您有一堆from whatever import *语句,其中一个导入了一个名称,该名称plot正在破坏该名称pylab(它甚至可能是from whatever import plot您没有注意到的)

您可以尝试通过简单的文本搜索来缩小范围,plot看看您是否明确地这样做。您还可以删除导入并删除您的脚本,直到它按预期工作,并尝试识别有问题的行。

于 2012-05-07T09:37:41.187 回答