编译器不理解Python中的可选参数

时间:2016-09-08 00:51:13

标签: python

您好我的练习有问题,要求我编写包含函数,3个词典和可选参数的代码。

这是我的代码:

def make_album(artist_name, album_title, num_tracks):

    """Return artist and album title name."""
    CD1 = {'sonic': artist_name, 'his world': album_title}
    CD2 = {'shadow': artist_name, 'all hail shadow': album_title}
    CD3 = {'silver': artist_name, 'dream of an absolution': album_title}
    if num_tracks:
        CD = artist_name + ' ' + album_title + ' ' + num_tracks
    else:
        CD = artist_name + ' ' + album_title
    return CD.title()

disc = make_album('sonic', 'his world', '15')
print(disc)

disc = make_album('shadow', 'all hail shadow')
print(disc)

disc = make_album('silver', 'dream of an absolution')
print(disc)

每当我尝试运行我的代码时,我的编译器声明它缺少1个必需的位置参数:'num_tracks'代表我的第二个print语句。

但是这不应该是一个问题,因为我的if-else语句,除非我错误地编写代码并且编译器没有读取我的if-else语句?非常感谢任何反馈,谢谢您的时间。

1 个答案:

答案 0 :(得分:2)

您需要def # num_tracks=None means if not provided, num_tracks is set to None def make_album(artist_name, album_title, num_tracks=None): ... if num_tracks is not None: CD = artist_name + ' ' + album_title + ' ' + num_tracks else: CD = artist_name + ' ' + album_title 函数,例如:

class Time
{};

class Base : private Time
{};

class Child : public Base, private Time
{};

始终需要没有默认值的参数。