有没有可能调用需要参数的函数?论python

2024-05-29 11:40:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在学习使用Exercism在python3.x上编写代码。根据从主函数发送的单词,我必须编写一个条件(在辅助文件上)来返回字符串:

用户功能:

def two_fer(name):
    if name:
        string = "One for " + name + ", one for me."
    else:
        string = "One for you, one for me."
    return string

主要功能:

class TwoFerTest(unittest.TestCase):
    def test_no_name_given(self):
        self.assertEqual(two_fer(), 'One for you, one for me.')

    def test_a_name_given(self):
        self.assertEqual(two_fer("Alice"), "One for Alice, one for me.")

    def test_another_name_given(self):
        self.assertEqual(two_fer("Bob"), "One for Bob, one for me.")

问题是,对于main函数中的第一个条件,它调用two_fer()时没有条件,这会导致失败。你知道吗

主函数不应该被修改,是否只有用户函数才能解决问题?你知道吗

提前谢谢。你知道吗


Tags: 函数nametestselfforstringdef条件
3条回答

您可以更改:

def two_fer(name):

收件人:

def two_fer(name=None):

默认情况下,名称为“无”

如果您给name一个默认值"you",那么您可以在没有显式参数的情况下调用函数并且完全摆脱if语句。你知道吗

def two_fer(name="you"):
    return "One for " + name + ", one for me"

或者更好

def two_fer(name="you"):
    return "One for {}, one for me".format(name)

您可以使用默认参数None并检查函数是否接收到任何参数。你知道吗

用户功能:

def two_fer(name = None):
    if name != None:
        string = "One for " + name + ", one for me."
    else:
        string = "One for you, one for me."
    return string

如果在没有任何参数的情况下调用方法two\fer,上述代码将执行else部分。你知道吗

相关问题 更多 >

    热门问题