我有一个类,其功能定义如下.我的目的是向它发送多个参数.
为了测试,我称之为:class_name("argument1","argument2"),并且它说:__init__accepts atmost 1 arguments , 3 given
def __init__(self, **options):
for name in options:
self.__dict__[name] = options[name]
Run Code Online (Sandbox Code Playgroud)
处理这个问题的正确方法是什么?
欢迎任何建议......
您想使用一个星号而不是两个.双星号用于命名参数.如果您有兴趣进一步阅读,python 文档中有一个很好的解释.
def __init__(self, *options):
for name in options:
self.__dict__[name] = name
Run Code Online (Sandbox Code Playgroud)
但是,从您的代码中我认为真正的问题是您错误地调用了您的函数.
您可能希望将其称为:
class_name(argument1="some value")
def __init__(self, **options):
for name,val in options.iteritems():
self.__dict__[name] = val
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3135 次 |
| 最近记录: |