python 函数参数类型

1:无参数

2:多个参数

3:默认参数

4:指定参数

5:动态参数

前两个就不说了,默认参数就是在参数后面给定默认值:

用处:由于python 在指定形参时是不需要指定类型的,但是有时候我们在函数内部需要用到

参数类型的方法,怎么办呢,那就再参数后面加上默认值,再使用的时候就可以使用该类型的方法了

# def show3(a1,a2=222):
#     print(a1,a2)
#

指定参数:也就是在传递实参的时候写出形参

# #也就是show(a2=111,a1=222)就是指定参数
# def show(a1,a2):
#     print(a1,a2)

动态参数:

动态参数有两种 一个是*args 另一个是**args

那么这两个有什么区别呢:

*args把给定的参数封装成一个列表(list)

而**kwargs 则是把给定的参数封装成一个字典

而且在给定实参的时候,*arg无需加上形参,

而**kwargs则要指定形参和实参,

# *arg
# def show(*args):
#     print(args,type(args))
#
# show('djkdj','jdkal') #就是将你输入的多个参数转换成一个参数是元组类型的


# **arg
# 把传入的参数转换成一个字典也就是需要在传入参数时需要指定参数的名称;

# def show(**kwargs):
#     print(kwargs,type(kwargs))
# show(n1=11,n3=22)

#还可以两个一起使用:功能更加的强大:会把无参数名臣的封装成一个tuple 把有参数名称的封装成一个字典;并且,arg必须在**kwargs前面
# def show(*args ,**kwargs):
#     print(args,kwargs)
# show(11,22,33,nn=22,kk=33)


如果两个一起用能实现强大的功能;

值得注意的是虽然*args和**kwargs会把我们给他的参数封装成列表和字典,但是如果我们在给定实际参数的时候给的是一个列表或者是字典,只是表示只有一个实参,而不是列表和字典里面的值;如果想要实现这个功能,那么我们就需要在列表或者字典前面加上*或者**就能实现了;

他的一些应用:字符串的格式化

# s1 = '{0} is {1}'
# # s2 = s1.format('bluesli','2b')#我们页可以不一个个传入参数;还可以直接传入一个列表只需要加上一个*好
# # l = ('bluesli','2b')
# # s2 = s1.format(*l)
# s3 = '{name} is {acter}'
#
# k = {'name':'kkk','acter':'ll'}
# # s3 = s3.format(**k)
# s3 = s3.format(name='kk',acter='bb')
# print(s3)

Python是一种动态类型的编程语言,在定义函数时,可以指定参数类型提示(Type Hint),但这只是对开发者的一种建议,并不会强制限制传入的参数类型。从Python 3.5开始引入了类型注解功能,这使得我们可以明确地标注每个参数期望的数据类型。 以下是几种常见的Python函数参数类型: ### 1. **位置参数** 这是最普通的参数形式,默认按照顺序传递给函数内部对应的变量名。 ```python def greet(name): print(f"Hello, {name}") ``` ### 2. **默认值参数** 如果未提供该参数,则会采用设定好的默认值。 ```python def greet(name="world"): print("Hello,", name) greet() # 输出 "Hello, world" greet('Tom') # 输出 "Hello, Tom" ``` ### 3. **关键字参数** 允许通过“键=值”的方式来传递参数,这样就不需要考虑它们的位置次序。 ```python def person_info(age, name): return f"{name} is {age} years old." print(person_info(name='Alice', age=25)) # Alice is 25 years old. ``` ### 4. **不定长参数** #### *args (收集任意数量的位置参数作为元组) 当不确定有多少额外的位置参数会被传递进来时使用`*args`。 ```python def sum_all(*numbers): total = 0 for num in numbers: total += num return total result = sum_all(1, 2, 3, 4) # result == 10 ``` #### **kwargs (将多余的关键字参数打包成字典) 用于接受一系列以key-value形式给出的附加输入数据。 ```python def display_details(**person_data): for key,value in person_data.items(): print(f'{key}: {value}') display_details(Name='John Doe', Age=30, City='New York') ``` ### §.§ 相关问题§.§ : 1. Python如何处理形参与实参之间的关系? 2. 类型提示是否影响运行性能?它有哪些实际用途? 3. 如果混合使用普通参数、默认值参数以及变长参数会产生怎样的效果呢?
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值