参数args=[]

 

def f(args=[]):
... 	print id(args)
... 	args.append(0)
... 	print args

调用情况如下:  

>>> f()
21373376
[0]
>>> f()
21373376
[0, 0]
>>> f([])
21373336
[0]

>>> f([])
21373896
[0]
>>> f([1])
21373256
[1, 0]
>>> f([1])
21373536
[1, 0]
>>> f([1])
21373496
[1, 0]

现象:

无参数时,用同一个地址

有参数时,则地址不一样

args 是编程中常见的一个术语,通常用于表示函数的参数列表。在 Python 中,`*args` 和 `**kwargs` 是两种特殊的语法,用于处理不定数量的参数。以下是关于 `args` 的详细解释和代码示例。 --- ### 示例代码:使用 `*args` 和 `**kwargs` ```python # 使用 *args 处理不定数量的位置参数 def sum_all(*args): total = 0 for num in args: total += num return total # 使用 **kwargs 处理不定数量的关键字参数 def print_info(**kwargs): for key, value in kwargs.items(): print(f"{key}: {value}") # 综合使用 *args 和 **kwargs def process_data(*args, **kwargs): print("位置参数:") for arg in args: print(arg) print("\n关键字参数:") for key, value in kwargs.items(): print(f"{key}: {value}") # 调用函数 if __name__ == "__main__": print(sum_all(1, 2, 3, 4, 5)) # 输出: 15 print_info(name="Alice", age=25, city="New York") # 输出: name: Alice, age: 25, city: New York process_data(10, 20, 30, name="Bob", age=30) # 输出位置参数和关键字参数 ``` --- ### 解释: 1. **`*args`**: - `*args` 用于接收不定数量的位置参数,并将它们打包成一个元组。 - 在上面的 `sum_all` 函数中,`args` 是一个包含所有传入数字的元组,我们可以通过遍历这个元组来计算总和。 2. **`**kwargs`**: - `**kwargs` 用于接收不定数量的关键字参数,并将它们打包成一个字典。 - 在上面的 `print_info` 函数中,`kwargs` 是一个包含所有传入关键字参数的字典,我们可以通过遍历这个字典来打印每个键值对。 3. **综合使用 `*args` 和 `**kwargs`**: - 在 `process_data` 函数中,同时使用了 `*args` 和 `**kwargs`,分别处理位置参数和关键字参数。 - 这种方式非常适合需要灵活接受多种类型参数的场景。 4. **调用顺序**: - 如果同时使用 `*args` 和 `**kwargs`,`*args` 必须放在 `**kwargs` 前面,否则会引发语法错误。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值