我不明白为什么。它会引发一个错误'int'对象没有属性'v',但我想访问self.v.当我只打印self时,它会打印一些数字。我不明白发生了什么。这是我的代码。
class Candidate:
def __init__(self,val,pscore,nscore):
self.v = val
self.p = pscore
self.n = nscore
def __str__(self):
return f"{self.v} ({self.p},{self.n})"
def check_plus_pos(self, guessval):
count = 0
b = self.v
a = str(b)
guessval = str(guessval)
for i in range(0,len(a)):
if a[i] == guessval[i]:
count += 1
return count
def check_neg_pos(self, guessval):
count = 0
b = self.v
a = str(b)
guessval = str(guessval)
for i in range(0,len(a)):
for j in range(0,len(guessval)):
if a[i] == guessval[j] and a[i] != guessval[i]:
count += 1
return count
def consistent(self, guess):
if Candidate.check_plus_pos(self,guess.v) == guess.p and Candidate.check_neg_pos(self,guess.v) == guess.n:
return True
else:
return False
问题发生在b == self.v
,我想将self.v
值赋给一个变量。
1条答案
按热度按时间cpjpxq1n1#
老实说,很难理解代码/类应该做什么,但它需要一些严重的重构。
我猜你应该:
*示例化你的类
self
而不是类名调用它*不显式传递
self
*不要使用不常用的缩写
a
表示字面上没有任何内容b
的赋值,它没有被重用,看起来也没有做任何事情。