首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么我不能从这段代码中得到任何输出?

为什么我不能从这段代码中得到任何输出?
EN

Stack Overflow用户
提问于 2021-05-03 17:26:24
回答 2查看 35关注 0票数 1
代码语言:javascript
运行
复制
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))

所以当我运行这段代码时,它不会打印任何东西。我得到的唯一输出是

为什么我的代码要这样做,我如何修复它?我想让那些打印方法起作用。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 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()。添加括号对于实际调用函数是必要的。

因此,如果您更改代码以正确调用函数,则相关部分如下所示:

代码语言:javascript
运行
复制
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()))

产出如下:

代码语言:javascript
运行
复制
E
E
E
E
E
E
E
Do you have a thing with letter E?
票数 1
EN

Stack Overflow用户

发布于 2021-05-03 17:33:46

您只是忘记在任何地方调用您的函数。

要调用函数,应该将()放在函数的名称后面。

例如,将fl = fnd_1.first_letter替换为fl = fnd_1.first_letter()

fnd_2fnd_3也是如此。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67373199

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档