python中怎么设定函数形参的类型

python这种语言里能不能在定义函数时直接设定参数(parameter)的数据类型,比如int,float==?同时还要写出参数名字,这两个能同时实现么?谢谢~... python这种语言里能不能在定义函数时直接设定参数(parameter)的数据类型,比如int,float==?同时还要写出参数名字,这两个能同时实现么?
谢谢~
展开
 我来答
匿名用户
2013-09-18
展开全部
#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]):
#判断类型

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)
tn瓶邪
推荐于2016-06-25 · TA获得超过1882个赞
知道小有建树答主
回答量:610
采纳率:98%
帮助的人:113万
展开全部
  Python中函数参数的传递是通过“赋值”来传递的。
  但这条规则只回答了函数参数传递的“战略问题”,并没有回答“战术问题”,也就说没有回答怎么赋值的问题。
  函数参数的使用可以分为两个方面,一是函数参数如何定义,二是函数在调用时的参数如何解析的。而后者又是由前者决定的。
  函数参数的定义有四种形式:
1. F(arg1,arg2,...)
2. F(arg2=<value>,arg3=<value>...)
3. F(*arg1)
4. F(**arg1)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式