数据STUDIO

Python 函数参数中的反斜杠 “/ ” 是怎么回事?

Image

Image

Python函数参数中的"/"用法是为了规定参数必须使用位置参数的方式传递,而不能使用关键字参数。这种语法看起来有些奇怪,但在某些场景下还是很有用的。

Image

普通函数参数

def greet(name, greeting):
    print(f"{greeting}, {name}!")

上面是一个普通的函数,它接收两个参数:name和greeting。在调用该函数时,可以使用位置参数或关键字参数的方式:

greet("Alice", "Hello")  # 位置参数
# 输出: Hello, Alice!

greet(greeting="Hi", name="Bob")  # 关键字参数
# 输出: Hi, Bob!

使用"/"来强制位置参数

def greet(name, greeting, /):
    print(f"{greeting}, {name}!")

在参数列表中的/之前的参数(name和greeting)在函数调用时必须使用位置参数传递,而不能使用关键字参数。

greet("Alice", "Hello")  # 有效
# 输出: Hello, Alice!

greet(greeting="Hi", name="Bob")  # 无效,将引发TypeError

这种语法的好处是可以强制函数的调用者按照期望的顺序传递参数,避免发生混淆。它通常在一些公共API或库函数中使用,以确保调用方式的一致性和可预测性。

写在最后

Python函数参数中的"/"语法看起来有些奇怪,但它的作用是强制在该位置之前的参数必须使用位置参数的形式传递,而不能使用关键字参数。这有助于提高代码的可读性和调用的一致性,在某些情况下是很有用的。

🏴‍☠️宝藏级🏴‍☠️ 原创公众号『数据STUDIO』内容超级硬核。公众号以Python为核心语言,垂直于数据科学领域,包括可戳👉Python|MySQL|数据分析|数据可视化|机器学习与数据挖掘|爬虫 等,从入门到进阶!

长按👇关注- 数据STUDIO -设为星标,干货速递ImageImage