class Friend:
def __init__(self,fullname,domicile):
self.fullname = fullname
self.domicile = domicile
def __repr__(self):
return ('Friend {}'.format(self.fullname))
def first_letter(self):
firstletter = self.fullname[0]
print (firstletter)
return firstletter
fnd_1 = Friend('Emilia Asikainen', 'Kintsu')
fnd_2 = Friend('Edi Eskola', 'Muurame')
fnd_3 = Friend('Esa Simonen', 'Jämsä')
fl = ''
fl = fnd_1.first_letter
print(fl)
if fnd_1.first_letter == fnd_2.first_letter and fnd_2.first_letter == fnd_3.first_letter:
print('Do you have a thing with letter {}?'.format(fnd_1.first_letter))
所以当我运行这段代码时,它不会打印任何东西。我得到的唯一输出是
为什么我的代码要这样做,我如何修复它?我想让那些打印方法起作用。
发布于 2021-05-03 17:30:20
if fnd_1.first_letter == fnd_2.first_letter and fnd_2.first_letter == fnd_3.first_letter
语句是不正确的,因为您比较的是函数本身,而不是输出。例如,fnd_1.first_letter
是一个函数;如果您想实际运行该函数并获得其结果,您必须使用以下语法:fnd_1.first_letter()
。添加括号对于实际调用函数是必要的。
因此,如果您更改代码以正确调用函数,则相关部分如下所示:
fl = fnd_1.first_letter()
print(fl)
if fnd_1.first_letter() == fnd_2.first_letter() and fnd_2.first_letter() == fnd_3.first_letter():
print('Do you have a thing with letter {}?'.format(fnd_1.first_letter()))
产出如下:
E
E
E
E
E
E
E
Do you have a thing with letter E?
发布于 2021-05-03 17:33:46
您只是忘记在任何地方调用您的函数。
要调用函数,应该将()
放在函数的名称后面。
例如,将fl = fnd_1.first_letter
替换为fl = fnd_1.first_letter()
fnd_2
和fnd_3
也是如此。
https://stackoverflow.com/questions/67373199
复制相似问题