分割函数不会返回多个值

问题描述 投票:0回答:1

我有一个函数,我想创建一个方法。当我把它放在一个类中时,我无法让 message.split(' ') 在我的消息中返回超过 1 个值?这是一个表情符号转换器。它是一个练习项目,其中有很多其他程序的灰色注释?这是简单的修复吗?我尝试将其返回到常规函数,但现在它无法以任何形式工作。 班级用户: defgreet_user(自我,名字,mi,姓氏): print(f'你好{名字} {mi} {姓氏}') print('欢迎登机!')

     def emoji(message):
         words = message.split(' ')
         emojis = {
            ':)': '☺️',  # windows + period
            ':(': "😒"
         }
         output = ' '
         for xcv in words:
             output += emojis.get(xcv, xcv) + ' '
             return output


point1 = User()
print('Start')
point1.greet_user('John', 'P','Ket')
point1.greet_user('Mary', last_name='Smith', mi="P")
print('Finish')
message = input('>')
print(emoji(message))

这是活动代码,下面是终端窗口:

开始 你好,约翰·P·凯特 欢迎登机! 你好玛丽·P·史密斯 欢迎登机! 完成

他妈的:( 他妈的 正如您可能会看到第一种方法没有任何问题,但只是返回字符串。如果您有任何解决方案或只是想对我几天前刚刚开始的整个计划提供反馈,并且希望得到批评

正如我上面所说,当我反转我尝试的所有更改时,包括更改类和方法名称(包括最后打印函数中的 self )?我试图采用一种新技术,但我开始认为它根本不能转换成一种方法。我尝试了使用点的几种变体,也是我目前必须上课的唯一机会。

python class methods split point
1个回答
0
投票

代码中的问题是

return
方法内的
emoji
语句的缩进。它位于循环内部,因此该函数在处理完一个单词后就返回。

试试这个:

def emoji(self, message):
    words = message.split(' ')
    emojis = {
        ':)': '☺️',
        ':(': "😒"
    }
    output = ''
    for xcv in words:
        output += emojis.get(xcv, xcv) + ' '
    return output

确保使用

point1.emoji(message)
来调用它,因为它现在是
User
类的一个方法,我建议如果不需要访问任何
User
类属性或方法...

© www.soinside.com 2019 - 2024. All rights reserved.