我正在写一小段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):
问题内容: 对于错误: 使用以下类方法: 并调用它: 当我给它1个参数时,错误似乎很奇怪,该方法应仅接受1个参数,但这是说我没有给它1个参数....我知道可以通过添加到方法原型中来解决问题但是我想知道错误的原因。 我得到它是因为通过extractAll(“ th”)调用它的行为也作为参数传递了吗?如果是这样,通过删除调用中的,我是否可以使其成为某种可以像这样调用的类方法? 问题答案: 通话 因为常
问题内容: 的所有文档似乎都表明这是一段有效的代码-不明白吗? 问题答案: 文件说两个参数:。 第一个是mysqli实例的链接,第二个是要转义的字符串。
我得到以下错误 警告:mysqli_error()只需要1个参数,给定0 问题出在代码的这一行: 整个代码是 包含的文件有以下一行
问题内容: 我收到这个错误 TypeError:super()至少接受1个参数(给定0) 在python2.7.11上使用以下代码: 使它工作的解决方法是: 似乎语法是特定于python 3的。那么,在2.x和3.x之间提供兼容代码并避免发生此错误的最佳方法是什么? 问题答案: 是的,0参数语法特定于Python 3,请参阅 Python 3.0 和PEP 3135的 新增功能 -New Supe
问题内容: 按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 8年前关闭。 我收到以下错误 警告:mysqli_error()恰好需要1个参数,给定0 问题在于这行代码: 整个代码是 包含的文件具有以下行 问题答案: mysqli_er
用这个最小的Jenkins管道脚本 我犯了一个令人困惑的错误 “docker build”只需要1个参数。 但根据文件,docker的签名。build() 运行docker build,从当前目录中的Dockerfile创建并标记指定的图像。可以添加其他参数,例如。与docker build一样,args必须以构建上下文结尾。返回生成的图像对象。在构建中记录指纹。 发生什么事?