2016-07-28 5 views
2

私はEmpという名前のクラスを作成しました。従業員番号、部門番号、従業員タイプなどの属性を持っています。私はこのクラスを使用してemp_dictという辞書を作成しました。別のクラスのメソッドからpythonオブジェクトのdictを呼び出すことはできますか?

私は部門の詳細についてDeptと同様のことをしましたが、このクラスの請負業者数を測定するメソッドをdepartmentクラスに作成したいのですが、これを行うにはemp_dictを参照してください。

class Dept(): 
    def __init__(self,deptno, deptname): 
     self.deptno = deptno 
    def contractor_count(self,qtr,emp_dict): 
     contractor_count = 0 
     if qtr in ['FY14Q1A','FY14Q2A','FY14Q3A','FY14Q4A',\ 
       'FY15Q1A','FY15Q2A','FY15Q3A','FY15Q4A',\ 
       'FY16Q1A','FY16Q2A','FY16Q3A','FY16Q4A',\ 
       'FY17Q1A','FY17Q2A','FY17Q3A','FY17Q4A']: 
      for worker in self.allo[qtr].keys(): 
       if emp_dict[worker].emptype != "R" : 
        contractor_count_= 1 
     return contractor_count 

私はcount_contractorメソッドを使用してみました場合は初期値を返します:0 私は別のアプローチを使用する必要がありますか。

答えて

2

contractor_count変数には決して触れません。あなたは持っています:

contractor_count_= 1 

あなたはこれを意味しましたか?

contractor_count += 1 

混乱を避けるため、メソッド名とは異なる変数名を使用することもお勧めします。

0

それはあなたのスペルエラーを持っているように思える、と_代わりの+を打つ:

あなたのコードは次のようになります。

class Dept(): 
def __init__(self,deptno, deptname): 
    self.deptno = deptno 
def contractor_count(self,qtr,emp_dict): 
    contractor_count = 0 
    if qtr in ['FY14Q1A','FY14Q2A','FY14Q3A','FY14Q4A',\ 
      'FY15Q1A','FY15Q2A','FY15Q3A','FY15Q4A',\ 
      'FY16Q1A','FY16Q2A','FY16Q3A','FY16Q4A',\ 
      'FY17Q1A','FY17Q2A','FY17Q3A','FY17Q4A']: 
     for worker in self.allo[qtr].keys(): 
      if emp_dict[worker].emptype != "R" : 
       contractor_count+= 1 
    return contractor_count 

ラインの補正:contractor_count+= 1

関連する問題