【发布时间】:2017-11-21 22:35:49
【问题描述】:
抱歉,我是 Python 新手,我知道答案应该是显而易见的。我有一个用参数和构造函数组织的类,但我不能在 main 中调用该类的任何方法。我想,这可能与列表传递有关。
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
【问题讨论】:
-
你的代码有很多地方不太对劲。 1. 您使用可变容器作为默认参数 2. 您的一些实例变量被破坏(我不确定您的意图是什么),以及 3. 您正在访问这些方法中不存在的属性。
-
请查看我的更新
标签: python list function class