2016-07-28 93 views
2

我创建了一个名为Emp的类,其中包含员工编号,部门编号,员工类型等属性。我使用这个类来填充名为emp_dict的字典。我可以用另一个类的方法调用python对象的字典吗?

我已经为部门做了类似的事情,现在我想在部门类中创建一个方法来测量此类中的数字承包商,但是要这样做,我参考了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

相关问题