2015-12-18 2 views
1

получили следующий код до сих пор:Python - TypeError: объект поплавка не отозвана ошибка

class beam(object): 

    def __init__(self, E, I, L): 
     self.E = E 
     self.I = I 
     self.L = L 
     self.Loads = [(0.0, 0.0)] #[(Force, distance along beam)] 

    def getTotalDeflection(self, x): 
     """Calculate total deflection of beam due to multiple loads""" 
     return sum(self.beamDeflection(loadall, x) for loadall in self.Loads) 

    def getSlope(self, x): 
     """Calculate gradient at a point x on beam due to deflection 
     """ 
     import scipy.misc 
     return scipy.misc.derivative(self.getTotalDeflection, x) 

Для функции getSlope(), мне нужно, чтобы вычислить наклон путем нахождения производной отклонения по Икс. Тем не менее, я получаю следующее сообщение об ошибке:

File "C:/Users/X/Downloads/beamModel.py", line 12, in class beam(object): File "C:/Users/X/Downloads/beamModel.py", line 67, in beam print b.getSlope(1.0) File "C:/Users/X/Downloads/beamModel.py", line 62, in getSlope return scipy.misc.derivative(self.getTotalDeflection, x) File "C:\Users\X\Anaconda2\lib\site-packages\scipy\misc\common.py", line 258, in derivative val += weights[k]*func(x0+(k-ho)*dx,*args) TypeError: 'float' object is not callable

+0

Edited исправить ошибку от копирования и вставки. – Student1001

ответ

1

Единственный способ, которым это может произойти, если вы передаете float к derivative() вместо функции:

>>> scipy.misc.derivative(1.0, 1.0) 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "/usr/lib64/python2.7/site-packages/scipy/misc/common.py", line 195, in derivative 
    val += weights[k]*func(x0+(k-ho)*dx,*args) 
TypeError: 'float' object is not callable 

Вы абсолютно уверены, что ваш код как отправлено? Скорее всего, ваш код на самом деле , вызывающийself.getTotalDeflection и, следовательно, передающий его возвращаемое значение (поплавок) на derivative(), например. Ваш код может быть:

return scipy.misc.derivative(self.getTotalDeflection(x), x) 

или подобное, когда он должен быть действительно, как вы выложили, т.е.

return scipy.misc.derivative(self.getTotalDeflection, x) 
Смежные вопросы