python函数的参数可以接收哪些类型的数据_python中怎么设定函数形参的类型

展开全部

#Python 2.5

#这个可以用修饰器来完成

#但是一般不会限制参数类型

#给你个思路:

def argfilter(*types):

def deco(func): #这是修饰器

def newfunc(*args): #新的函数

if len(types)==len(args):

correct = True

for i in range(len(args)):

if not isinstance(args[i], types[i]): #判断类e69da5e887aa62616964757a686964616f31333239303265型

correct = False

if correct:

return func(*args) #返回原函数值

else:

raise TypeError

else:

raise TypeError

return newfunc #由修饰器返回新的函数

return deco #返回作为修饰器的函数

@argfilter(int, str) #指定参数类型

def func(i, s): #定义被修饰的函数

print i, s

#之后你想限制类型的话, 就这样:

#@argfilter(第一个参数的类名, 第二个参数的类名, ..., 第N个参数的类名)

#def yourfunc(第一个参数, 第一个参数, ..., 第N个参数):

# ...

#

#相当于:

#def yourfunc(第一个参数, 第一个参数, ..., 第N个参数):

# ...

#yourfunc = argfilter(第一个参数的类名, 第二个参数的类名, ..., 第N个参数的类名)(yourfunc)

2Q==

已赞过

已踩过<

你对这个回答的评价是?

评论

收起

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值