为简洁起见,这是最基本的要素.据我所知,下面写的多余,但我离题了.
我想知道是否有更聪明,更简洁的方式来写这个
def create_action(context, verb, actor = None, target = None, permission_level = None):
action = Action(context = context, verb = verb, actor = actor, target = target, permission_level = permission_level)
Run Code Online (Sandbox Code Playgroud)
如您所见,两个必需参数,一些(或可能更多)可选的参数重载.
什么是更好的方式来写这个,以便我不是围绕这些关键字?
使用参数解压缩:
def create_action(*args, **kwargs):
action = Action(*args, **kwargs)
Run Code Online (Sandbox Code Playgroud)
首先,删除默认args部分之间的空格.您也可能不需要使用关键字参数来调用Action()例如
def create_action(context, verb, actor=None, target=None, permission_level=None):
action = Action(context, verb, actor, target, permission_level)
Run Code Online (Sandbox Code Playgroud)
这是使用默认参数的传统Python风格.
坦率地说,我不明白为什么这个功能是必要的.它没有返回任何东西(我猜你只是忘了返回动作,它完成的一切都应该__init__在Action类的方法中完成(我假设它是一个类),例如
class Action(object):
def __init__(context, verb, actor=None, target=None, permission_level=None):
# Do something
Run Code Online (Sandbox Code Playgroud)
为简洁起见,我根本不会编写函数,只是__init__在类的方法中使用默认参数.
| 归档时间: |
|
| 查看次数: |
181 次 |
| 最近记录: |