函数在python脚本中无法正常工作

时间:2016-06-15 11:16:33

标签: python

问题我想将全名与人名首字母进行比较,但由于某种原因,我不断收到此错误。任何帮助将不胜感激!

#check.py", line 27, in check_fn a = self.my_name AttributeError: 'Check' object has no attribute 'my_name' 
  import re 
  class Check(object): 


    def __init__(self, word): 
       self.word = word 

    def abbr(self): 
       e = self.word 
       w = self.word[:1] 
       lens = len(self.word) 
       last = self.word[-1:] 
       all = '%s%s%s' %(w, lens, last) 

       key_a = [] 
       key_b = [] 

       app_a = key_a.append(e) 
       app_b = key_b.append(all) 

       dictonary = dict(zip(key_a, key_b)) 
       self.check_fn(e, all) 
       return dictonary 


    def check_fn(self, my_name, intials): 
      a = self.my_name 
      b = self.intials 

      list_a = [] 
      list_b = [] 

      aa = list_a.append(a) 
      bb = list_b.append(b) 

      for element in list_a: 
        m = re.match("(^['%s' %(list_b)]\d)", element) 
        if m: 
          print(m.groups()) 

3 个答案:

答案 0 :(得分:1)

您从未定义过self.my_name(或self.intials

您的代码:

  a = self.my_name 
  b = self.intials 

你想要这个代码吗?

  a = my_name 
  b = intials 

答案 1 :(得分:1)

'自'指向同一类的对象。这里my_name和姓名缩写没有在班级中定义'检查'。

a = my_name 
b = intials 

当这些参数通过该函数传递时,上面的代码片段将适合您。

答案 2 :(得分:0)

它引发了AttributeError,因为你没有声明self.my_name或self.initials,因此你的Check类没有名为my_name的属性。