Python——函数参数(必须参数)

必须参数

必须参数,顾名思义就是函数定义的参数调用时必须传人,并且在调用的时候数量和顺序必须和定义函数时的参数保持一致。
例如:

def add(a, b):
    print("a + b =", a+b)

add(1,2)

执行结果如下:

a + b = 3

如果我们少传入一个参数:

def two_arg_function (arg1, arg2):
    print("第一个参数", arg1)
    print("第二个参数", arg2)

two_arg_function(1)   # 错误!

执行结果如下:

TypeError: two_arg_function() missing 1 required positional argument: 'arg2'

这一执行结果告诉我们,调用函数时函数缺少了一个必要的参数。
如果我们多传入一个参数:

def one_arg_function(arg1):
    print("第一个参数", arg1)

one_arg_function(1, 2)  # 错误!

执行结果如下:

TypeError: one_arg_function() takes 1 positional argument but 2 were given

这一执行结果告诉我们,函数只需要一个参数,但是调用时给了两个参数。
通过以上例子我们可以发现,调用函数时必须保证参数的数量与定义函数时的参数数量一致。

### Python 中 `main` 函数参数传递 尽管 Python 并未定义严格意义上的入口函数 `main()`,但在实践中通常通过条件语句 `if __name__ == '__main__'` 来模拟这一行为。对于命令行参数处理,在此结构下可以利用内置模块 `sys.argv` 或者更高级别的 argparse 库。 #### 使用 sys.argv 处理命令行参数 当脚本运行时,可以通过 `import sys` 导入标准库中的 `sys` 模块访问命令行参数列表 `sys.argv`。这是一个字符串形式的列表,其中第一个元素通常是程序名称(即文件路径),后续元素则是传给脚本的实际参数[^1]。 ```python import sys def main(): # 打印所有接收到的参数 print(f"Program name: {sys.argv[0]}") # 显示当前执行的文件名 arguments = sys.argv[1:] # 获取除开文件名外的所有参数 for i, arg in enumerate(arguments, start=1): print(f"Argument #{i}: {arg}") if __name__ == "__main__": main() ``` 这段代码展示了如何遍历并打印出所有的命令行输入项。注意这里是从索引位置 1 开始获取实际参数,因为第 0 位总是代表正在执行的 Python 文件本身。 #### 利用 argparse 进行复杂解析 为了实现更加灵活且易于维护的方式管理命令行选项和子命令,推荐使用 `argparse` 模块。它不仅支持简单的命名参数,还允许指定默认值、帮助信息以及类型转换等功能[^2]。 ```python import argparse def main(args=None): parser = argparse.ArgumentParser(description="Process some integers.") parser.add_argument( 'integers', metavar='N', type=int, nargs='+', help='an integer for the accumulator' ) parser.add_argument( '--sum', dest='accumulate', action='store_const', const=sum, default=max, help='sum the integers (default: find the max)' ) parsed_args = parser.parse_args(args) result = parsed_args.accumulate(parsed_args.integers) print(result) if __name__ == "__main__": main() ``` 上述例子中创建了一个 ArgumentParser 对象用于描述整个命令行接口;接着调用了 add_argument 方法添加了两个不同的参数配置——一个是必选的位置参数 `integers`,另一个是可选的关键字参数 `--sum`。最后 parse_args 解析这些设置好的参数,并按照设定逻辑计算输出结果[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值