📅  最后修改于: 2023-12-03 15:04:19.239000             🧑  作者: Mango
默认参数是在函数定义时给出的参数值,如果调用函数时没有传递参数,则使用默认值。默认参数具有以下特性:
然而,在编写带有多个默认参数的函数时,需要注意它们之间的依赖关系。如果默认参数依赖于其他参数,则可能会引起混淆和预期不一致的结果。
下面是一个示例,演示了带有多个默认参数的函数如何依赖于其他参数。
def create_student(name, major='Undecided', classification='Freshman'):
if major == 'Undecided':
classification = 'Undecided'
return f'{name} is a {classification} {major} student'
print(create_student('John'))
# Output: John is a Undecided Undecided student
print(create_student('Jane', 'Computer Science'))
# Output: Jane is a Freshman Computer Science student
print(create_student('Bob', 'Mathematics', 'Graduate'))
# Output: Bob is a Graduate Mathematics student
在上述示例中,我们定义了一个名为 create_student
的函数,该函数采用三个参数:name
、major
和 classification
。我们将 major
和 classification
的默认值分别设置为 Undecided
和 Freshman
。
如果传递给 create_student
的 major
参数值为 Undecided
,则 classification
将自动更改为 Undecided
。
例如,当我们调用 create_student('John')
时,由于没有传递 major
值,major
将默认为 Undecided
,因此 classification
也将为 Undecided
。因此,函数将返回 John is a Undecided Undecided student
。
类似地,如果我们传递了 major
参数,则 classification
值将保留为默认值 Freshman
。这可以通过调用 create_student('Jane', 'Computer Science')
来演示,它将返回 Jane is a Freshman Computer Science student
。
最后,如果我们传递了 major
和 classification
参数,则它们将替换默认值 Undecided
和 Freshman
。例如,我们可以通过调用 create_student('Bob', 'Mathematics', 'Graduate')
来演示它,它将返回 Bob is a Graduate Mathematics student
。
参考资料: