残念ながら、私はPythonの初心者です。私はparametrsとコンストラクタで構成されたクラスを持っていますが、私はそのクラスのメソッドを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
はEDIT: 今、私は彼らがプライベートであることを形成し、私がフィールドにアクセスすることができますが、それでも方法にはありません変更しました。
のいずれかの方法を使用しているとき、彼らがアクセスしようとしている変数は、単に存在しないので、あなたはおそらくAttributeError
を取得している
def __init__(self,nameSet,hoursNeed,daysOff):
self.nameSet=nameSet
self.hoursNeed=hoursNeed
self.daysOff=daysOff
あなたのコードではかなり多くのことが正しくありません。 1.デフォルトの引数として変更可能なコンテナを使用しています。2.インスタンス変数の一部が変更されています(私はあなたが意図するものではありません)。3.これらのメソッドでは存在しない属性にアクセスしています。 –
plsは私の更新を確認できます –