class PersonData:
def __init__(self,nameSet=[],hoursNeed=[],daysOff=[]):
self.__nameSet=nameSet
self.__hoursNeed=hoursNeed
self.__daysOff=daysOff
def getNameSet(self):
return self.nameSet
def setHoursNeed(self,hoursNeed):
self.hoursNeed=hoursNeed
def setDaysOff(self,daysOff):
self.daysOff=daysOff
def RandomFulfil(nameSet): #JUST FOR CHECK
for element in nameSet:
print(element)
主要在这里:
from PersonData import PersonData
def main():
nameList=[]
hoursList=[]
daysOffList=[]
print("How many employees you have: ")
N=int(input())
for x in range(N):
print("Enter employees names now: ",N," left: ")
x=input("")
nameList.append(x)
print("Enter employees working hours per week now:")
y=input("")
hoursList.append(y)
print("Enter employees days off per week now:")
z=input("")
daysOffList.append(z)
N-=1
people=PersonData(nameList,hoursList,daysOffList)
#people.any method <---- this one is not working
编辑: 现在我将它们改为私有,我可以访问这些字段,但仍然没有这些方法。
def __init__(self,nameSet,hoursNeed,daysOff):
self.nameSet=nameSet
self.hoursNeed=hoursNeed
self.daysOff=daysOff
答案 0 :(得分:0)
使用任何方法时,您可能会获得AttributeError
,因为他们尝试访问的变量根本不存在:
您在构造函数中初始化的成员与您尝试在其他方法中使用的成员完全不同:self.__nameSet
与self.nameSet
不同,self.__daysOff
不是与self.daysOff
等相同。
此外,您不应该使用可变对手作为默认参数(不要在构造函数中使用nameSet=[]
等)。