我试图通过首先从列表中获取副本来调用类方法。 另外,该方法可以正常工作。
class testCandidate:
voitingSistem=VoitingSystem()
voitingSistem.addCandidate("Putin")
candidate=Candidate("Putin")
print(candidate.GetName())
print(voitingSistem.voiting.getCandidate(0).GetName())
OUT:
追踪(最近一次调用最后一次):普京文件 " E:/Dropbox/Pyton/Network/Client-Server/Server/testCandidate.py" ;, line 5,在 class testCandidate:File" E:/Dropbox/Pyton/Network/Client-Server/Server/testCandidate.py" ;, line 10,在testCandidate中 print(voitingSistem.voiting.getCandidate(0).GetName())AttributeError:' str'对象没有属性' GetName'
class VoitingSystem:
users=[];
voiting="";
def __init__(self) -> None:
self.voiting=Voiting("Voiting1");
super().__init__()
def addCandidate(self, name):
candidate=Candidate(name)
self.voiting.candidats.append(candidate)
return None
def getCandidate(self,index):
return self.voiting.getCandidate(index)
class Voiting(object):
name=""
candidats=[]
def __init__(self,Name) -> None:
super().__init__()
self.name=Name
def getCandidates(self):
return self.candidats;
def getCandidate(self,index) -> Candidate:
return self.candidats[index];
def addCandidate(self,Name):
self.candidats.append(Name)
class Candidate:
name="";
voices=0;
def __init__(self,Name):
self.name=Name;
self.voices=0;
def SetName(self,Name):
self.name=Name;
def GetName(self):
return self.name;
答案 0 :(得分:0)
candidats
是一个名单。您无法检索名称(字符串)并直接使用它来调用用户定义的类的方法。你还没有很好地定义你的目的,但是我怀疑你想要的是让类保存一个候选对象列表。在这种情况下,您需要以下内容:
def addCandidate(self, candidate):
self.candidats.append(self, candidate)
传递实例而不是名称。