2017-06-19 8 views
0

残念ながら、私は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

あなたのコードではかなり多くのことが正しくありません。 1.デフォルトの引数として変更可能なコンテナを使用しています。2.インスタンス変数の一部が変更されています(私はあなたが意図するものではありません)。3.これらのメソッドでは存在しない属性にアクセスしています。 –

+0

plsは私の更新を確認できます –

答えて

0

あなたはコンストラクタで初期化されているメンバーは完全に異なるものよりますあなたは他の方法で使用しようとしているものである:self.__nameSetはまた

など、self.__daysOffself.daysOffと同じではありません、self.nameSetと同じではありません、あなたはデフォルトの引数(ドン」として可変contrainerを使用しないでください使用するnameSet=[]など)を生成することができます。

+0

plsは私の更新を確認します –

+0

また、私はリストとしてnameSetとHourSetを使用することをコントラクタでどのように表示するのか分かりません。 –

+1

@VladDemyan割り当て前に 'isinstance(given_argument、list)'で指定された型がリストであるかどうかを調べることができます。 [Docs](https://docs.python.org/2/library/functions.html#isinstance) – Daniel

関連する問題