python - 关键字参数默认值可以参数化吗?
问题描述
我正在用几种方法编写一个类定义。该__init__
方法将列表实例化为参数,我希望其中一种方法采用与列表长度匹配的默认值的关键字参数。考虑代码片段:
class widget(object):
def __init__(self, *attr_list):
self.attr_list = attr_list
def fancy_method(self, arglist = (None,) * len(self.attr_list)):
pass
我想我可以只运行代码并尝试实例化一个小部件,但是任何人都可以就操作顺序和可接受的变量引用提供启发性的评论吗?也许提出一种更容易同意的替代语法?
编辑:在这里提出并回答了一个类似的问题如何使参数的默认值取决于另一个参数(在 Python 中)? 但是我很想知道当参数(即 attr_list)不是与它参数化的关键字参数相同的函数中的参数时,解释器如何处理这个问题。fancy_method 及其行为是否根据小部件定义进行定义?或者可以在实例化时定义默认参数吗?另一个问题不包括这种歧义,因为默认参数必须在函数调用时定义,而不是它的定义。
解决方案
推荐阅读
- unity3d - 可编写脚本的对象作为精灵的自定义版本
- spring-data-jpa - Spring Data JPA - PagingAndSortingRepository 和 Querydsl 谓词不适用于 findByAttribute
- c# - BrowserFetcher 使用 await 退出应用程序
- java - 为更明确的方法参数声明包装单个值
- c# - 如何使用 HttpClient 处理 OAuth2.0 请求 västrafik api
- codenameone - 为什么 CodenameOne Picker 在 GUI Builder 之后不显示选择的列表项?
- r - R中的桑基图
- cordova - 安装 ionic-cli-4 后无法识别 Cordova 命令
- javascript - 在 NodeJS 中修改 Promise 原型
- python - Python Tkinter 绑定子小部件