MYV*_*MYV 0 python functional-programming
我正在用Python做一些函数式编程,如果我有一个函数可以接受任意数量的参数但没有做任何事情,那么它将非常有用,可以用作一些东西的默认值.我想知道是否有人知道一个人的存在,或者我怎么能自己创造一个.
看到回复后编辑:另外,我是python的新手,所以对异国语法的任何细化都会非常有用.星星是什么意思?
Mar*_*ers 12
创建自己的:
def noop(*args, **kw): pass
Run Code Online (Sandbox Code Playgroud)
这需要任意数量的位置和关键字参数,并且什么都不做.pass表示一个空的python块 ; 它适用于Python期望的任何地方block,包括循环,if语句和try语句.
Python callables总是返回一些东西(这是语言要求); 如果没有给出明确的返回值None则返回.
的*和**表示任意长度的参数; 您可以传入0个或更多位置参数,args名称将代表它们的元组,以及0个或更多关键字参数,并且它们将在kw字典中捕获.
从功能定义文档:
如果存在形式"
*identifier",则将其初始化为接收任何多余位置参数的元组,默认为空元组.如果表单"**identifier"存在,则将其初始化为接收任何多余关键字参数的新字典,默认为新的空字典.
简单的演示*和**参数:
>>> def f(*args, **kw): return (args, kw)
...
>>> f('foo', 'bar', spam='eggs', monty='python')
(('foo', 'bar'), {'monty': 'python', 'spam': 'eggs'})
Run Code Online (Sandbox Code Playgroud)
对于函数式编程,如果需要返回参数,则需要考虑需要返回的内容; 单参数函数只返回该参数,对于任何需要获取2个或更多参数并返回所有参数的东西,您必须将这些参数作为元组返回:
def identity(arg): return arg
def plural_identity(*args): return args
Run Code Online (Sandbox Code Playgroud)
演示:
>>> identity('foobar')
'foobar'
>>> plural_identity('spam', 'eggs')
('spam', 'eggs')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
268 次 |
| 最近记录: |