问题我想将全名与人名首字母进行比较,但由于某种原因,我不断收到此错误。任何帮助将不胜感激!
#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())
答案 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的属性。