说说在 Python 中如何向函数传参

版权声明:如果喜欢,就点个赞呗 O(∩_∩)O~ https://blog.csdn.net/deniro_li/article/details/88614348

1 位置实参

位置实参指的是,实参的顺序与形参相同。

def to_read(book_name, book_type):
    '''想读的书'''
    print('我想读《' + book_name + '》咯')
    print('它属于' + book_type + '领域')

to_read('现代艺术150年 : 一个未完成的故事','艺术')

运行结果:

我想读《现代艺术150年 : 一个未完成的故事》咯
它属于艺术领域

注意: 使用位置实参时,参数的顺序很重要。

2 关键字实参

关键字实参指的是:传递给函数的是 “名称-值对” 。这样在调用函数时就不用考虑实参顺序咯, 而且还可以清楚地指出实参各个值的用途。

def to_read(book_name, book_type):
    '''想读的书'''
    print('我想读《' + book_name + '》咯')
    print('它属于' + book_type + '领域')

to_read(book_name='现代艺术150年 : 一个未完成的故事',book_type='艺术')

运行结果:

我想读《现代艺术150年 : 一个未完成的故事》咯
它属于艺术领域

注意: 使用关键字实参时, 必须准确地指出定义中的形参名。

3 默认值

可以给每个形参指定默认值 。 如果在调用函数时,有给形参提供实参, 那么将使用指定的实参值; 如果没有,那么将使用默认值。

使用默认值可以简化函数调用的方式, 而且还可清楚地指明函数的典型用法。

def to_read(book_name, book_type='艺术'):
    '''想读的书'''
    print('我想读《' + book_name + '》咯')
    print('它属于' + book_type + '领域')

to_read(book_name='现代艺术150年 : 一个未完成的故事')
to_read('现代艺术150年 : 一个未完成的故事')
to_read('现代艺术150年 : 一个未完成的故事','艺术史')

运行结果:

我想读《现代艺术150年 : 一个未完成的故事》咯
它属于艺术领域
我想读《现代艺术150年 : 一个未完成的故事》咯
它属于艺术领域
我想读《现代艺术150年 : 一个未完成的故事》咯
它属于艺术史领域

注意: 在使用默认值时, 函数的形参列表必须先列出没有默认值的形参, 然后再列出有默认值的实参。这样可以让函数也支持位置实参。

可以混合使用位置实参、 关键字实参以及默认值等传参方式。建议使用对我们来说最容易理解的传参方式。

4 传参错误

如果我们在调用函数时,提供的实参多于或少于函数定义的信息时,就会抛出实参不匹配错误。 形如:TypeError: to_read() missing 1 required positional argument: 'book_name'

出现类似的 traceback , 请确保函数调用与函数定义相匹配 。

猜你喜欢

转载自blog.csdn.net/deniro_li/article/details/88614348