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 脚本位置参数-优快云博客

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值