Python解释器错误,x不带参数(给定1个)
发布时间:2020-12-20 10:34:50 所属栏目:Python 来源:网络整理
导读:我正在写一小段 python作为家庭作业,我不会让它运行!我没有那么多的 Python经验,但我知道很多Java. 我正在尝试实现粒子群优化算法,这就是我所拥有的: class Particle: def __init__(self,domain,ID): self.ID = ID self.gbest = None self.velocity = [] s
我正在写一小段
python作为家庭作业,我不会让它运行!我没有那么多的
Python经验,但我知道很多Java.
我正在尝试实现粒子群优化算法,这就是我所拥有的: class Particle: def __init__(self,domain,ID): self.ID = ID self.gbest = None self.velocity = [] self.current = [] self.pbest = [] for x in range(len(domain)): self.current.append(random.randint(domain[x][0],domain[x][1])) self.velocity.append(random.randint(domain[x][0],domain[x][1])) self.pbestx = self.current def updateVelocity(): for x in range(0,len(self.velocity)): self.velocity[x] = 2*random.random()*(self.pbestx[x]-self.current[x]) + 2 * random.random()*(self.gbest[x]-self.current[x]) def updatePosition(): for x in range(0,len(self.current)): self.current[x] = self.current[x] + self.velocity[x] def updatePbest(): if costf(self.current) < costf(self.best): self.best = self.current def psoOptimize(domain,costf,noOfParticles=20,noOfRuns=30): particles = [] for i in range(noOfParticles): particle = Particle(domain,i) particles.append(particle) for i in range(noOfRuns): Globalgbest = [] cost = 9999999999999999999 for i in particles: if costf(i.pbest) < cost: cost = costf(i.pbest) Globalgbest = i.pbest for particle in particles: particle.updateVelocity() particle.updatePosition() particle.updatePbest(costf) particle.gbest = Globalgbest return determineGbest(particles,costf) 现在,我认为没有理由不这样做. “TypeError:updateVelocity()不带参数(给定1个)” 我不明白!我没有给它任何论据! 谢谢您的帮助, 莱纳斯 解决方法
Python隐式地将对象传递给方法调用,但是您需要为它显式声明参数.这通常命名为self:
def updateVelocity(self): (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |