打印函数本身python 3

时间:2011-02-03 15:46:51

标签: python

编写一个具有名为my_func的函数的程序,其中包含三个参数abc

第一个参数是必需的,后两个参数的默认值为'b was not entered''c was not entered'

该函数必须打印每个参数的值。

在您的计划中,请致电my_func三次。第一次,只为第一个参数提供一个值。

第二次,提供第一个和第二个参数的值。第三次,为所有三个参数提供值。

在您的程序中,打印功能本身。

输出应为:

test
b was not entered
c was not entered
test
test
c was not entered
test
test
test
<function my_func at 0x397588>

这是我到目前为止所得到的:

def my_func(a, b=False, c=False):
    """Prints out the values"""
    for i in a:
        print(i)

    if not b:
        print("b was not entered")
    else:
        for i in b:
            print(i)


    if not c:
        print("C was not entered")
    else:
        for i in c:
            print(i)


my_func(['test'])
my_func(['test'], ['test'])
my_func(['test'], ['test'], ['test'])

2 个答案:

答案 0 :(得分:2)

我会尽力给你一些指示,让你自己找到正确的答案。

首先,为什么用字符串列表作为参数调用函数而不仅仅是字符串。只传递字符串会简化你的功能。

其次,当您为bc参数指定默认值时,可以使用您想要的任何值,包括字符串。这将进一步简化您的功能。

答案 1 :(得分:1)

你似乎只缺少最后一部分:

  

在您的程序中,打印函数本身。

只需添加:

print(my_func)

你会得到完全像你问的输出。

此外,虽然您的代码现在生成输出,但您使用False作为默认值,而不是询问的内容。您还使用每个参数的列表,问题并没有要求您这样做。您可以像这样定义您的函数:

def my_func(a, b="b was not entered", c="C was not entered"):
    print(a)
    print(b)
    print(c)

并称之为:

my_func('test')
my_func('test', 'test')
my_func('test', 'test', 'test')
print(my_func)

这样更简单并产生相同的输出