在 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

    物联沃分享整理
    物联沃-IOTWORD物联网 » python 如何传入参数?

    发表回复