python 如何传入参数? 需要根据实际场景选择合适的参数传递方式,比如处理命令行工具时推荐。,而对于内部函数调用灵活使用参数类型(如。通过命令行运行脚本时可以传入参数。

在 Python 中,传入参数主要分为以下几种情况:

1. 脚本参数(命令行参数)

通过命令行运行脚本时可以传入参数。例如:

python script.py arg1 arg2

处理命令行参数的方法:

  • 使用 sys.argv
  • 使用 argparse 模块(更强大)
示例:使用 sys.argv
import sys
if __name__ == "__main__":
 print("脚本名:", sys.argv[0])
 print("参数列表:", sys.argv[1:])

运行:

python script.py hello world

输出:

脚本名: script.py
参数列表: ['hello', 'world']
示例:使用 argparse
import argparse
parser = argparse.ArgumentParser(description="示例脚本")
parser.add_argument("name", type=str, help="输入你的名字")
parser.add_argument("--age", type=int, default=18, help="输入你的年龄(默认18)")
args = parser.parse_args()
print(f"你好, {args.name}! 你的年龄是 {args.age} 岁。")

运行:

python script.py Alice --age 25

输出:

你好, Alice! 你的年龄是 25 岁。

2. 函数参数

Python 支持多种类型的函数参数传递:

(1)位置参数
def greet(name, age):
 print(f"你好, {name}! 你的年龄是 {age} 岁。")
greet("Alice", 25)
(2)关键字参数
greet(age=25, name="Alice")
(3)默认参数
def greet(name, age=18):
 print(f"你好, {name}! 你的年龄是 {age} 岁。")
greet("Alice") # 使用默认值
(4)可变参数(*args**kwargs
# *args 用于传递任意数量的位置参数
def greet(*args):
 print("位置参数:", args)
greet("Alice", 25, "Hello")
# **kwargs 用于传递任意数量的关键字参数
def greet(**kwargs):
 print("关键字参数:", kwargs)
greet(name="Alice", age=25, greeting="Hello")
(5)混合参数

参数顺序为:位置参数默认参数*args**kwargs

def example(a, b=2, *args, **kwargs):
 print("a:", a)
 print("b:", b)
 print("*args:", args)
 print("**kwargs:", kwargs)
example(1, 3, 4, 5, x=10, y=20)

输出:

a: 1
b: 3
*args: (4, 5)
**kwargs: {'x': 10, 'y': 20}

3. 类的构造函数参数

class Person:
 def __init__(self, name, age):
 self.name = name
 self.age = age
 def greet(self):
 print(f"你好, {self.name}! 你的年龄是 {self.age} 岁。")
p = Person("Alice", 25)
p.greet()

需要根据实际场景选择合适的参数传递方式,比如处理命令行工具时推荐 argparse,而对于内部函数调用灵活使用参数类型(如 *args**kwargs)。

参考

使用python脚本传递参数:(三种方式可收藏) - Mrwhite86 - 博客园 

命令行运行Python脚本时传入参数的三种方式_python 脚本位置参数-CSDN博客

 命令行运行Python脚本时传入参数的三种方式-腾讯云开发者社区-腾讯云

 命令行运行Python脚本时传入参数--3种方法_python 输入参数-CSDN博客

作者:Joyner2018原文地址:https://blog.csdn.net/Lucy_wzw/article/details/144369052

%s 个评论

要回复文章请先登录注册