Python AttributeError:FUN实例没有属性'__trunc';
下面是我的类FUN,但结果显示Python AttributeError:FUN实例没有属性'__trunc';,python,numpy,Python,Numpy,下面是我的类FUN,但结果显示AttributeError:FUN实例没有属性'\uu trunc\uu'。请告诉我编码中的错误在哪里以及要修改的内容 import math import random import string import numpy as np import pickle from itertools import chain random.seed(0) class FUN: def __init__(self): print "fun" # set a
AttributeError:FUN实例没有属性'\uu trunc\uu'
。请告诉我编码中的错误在哪里以及要修改的内容
import math
import random
import string
import numpy as np
import pickle
from itertools import chain
random.seed(0)
class FUN:
def __init__(self):
print "fun"
# set a random numbers between a & b
def rand(a, b):
self.rand = (b-a)*random.random() + a
return self.rand
# sigmoid function, tanh ~ 1/(1+e^-x)
def sigmoid(x):
self.sig = math.tanh(x)
return self.sig
def sigmoid1(x):
self.sig1 = 1/(1+math.exp(-x))
return self.sig1
# derivative of sigmoid function, in terms of the output (y)
def dsigmoid(y):
self.dsig = 1.0 - y**2
return self.dsig
# getting 2d array
#def matrix(I, J, fill=0.0):
#return [[val for col in range(I)] for row in range(J)]
#obtain a matrix
def matrix(I, J, fill=0.0):
m = []
for i in range(I):
m.append([fill]*J)
return m
f = FUN()
print f.matrix(2,3)
上述代码给出了以下类型的错误:
fun
Traceback (most recent call last):
File "functions.py", line 42, in <module>
print f.matrix(2,3)
File "functions.py", line 38, in matrix
for i in range(I):
AttributeError: FUN instance has no attribute '__trunc__'
有趣
回溯(最近一次呼叫最后一次):
文件“functions.py”,第42行,在
打印f.矩阵(2,3)
矩阵中第38行的文件“functions.py”
对于范围(i)中的i:
AttributeError:FUN实例没有属性“\uuu trunc\uuu”
请帮助我解决此错误。方法将
self
参数作为第一个参数;您将其命名为I
,并将其传递给range()
,然后尝试将FUN
自定义类的实例转换为整数†。但失败了:
>>> class FUN: pass
...
>>> range(FUN())
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: FUN instance has no attribute '__trunc__'
其他方法也需要这样做;除了\uuuu init\uuuu
方法之外,所有方法都缺少self
†Python先尝试,然后尝试
对象。uuu trunc_uu
,这是一种文档不足的方法。只有文档和文档中提到了方法。感谢您的建议,在进行自我论证后,它才起作用。但是对于函数random for float,它给出的错误是:回溯(最后一次调用):文件“functions.py”,第43行,在print f.rand(2.0,3.1)文件“functions.py”中,第18行,在rand self.rand=float((b-a)*random.random()+a)类型错误:不支持的操作数类型对于-:'type'和'type'@Latik:您所做的更改不仅仅是在方法签名中添加self
,因为def rand(self,a,b):
,然后self.rand=(b-a)*random.random()+a
,然后返回self.rand
就可以了。
def matrix(self, I, J, fill=0.0):