问题描述
我发现以下内容是一种有用的方法来访问参数后,
它们被传递给一个用** kwds收集它们的函数。 />
class namespace(dict):
def __getattr __(self,name):
返回self .__ getitem __(姓名)
def __setattr __(self,name,value):
self .__ setitem __(名称,值)
def __delattr __(self,name):
self .__ delitem __(姓名)
def foo(** kwds):
kwds = namespace(kwds)
打印kwds.color,kwds.size,kwds.shape等....
foo(color =''red'',size =''large'',shape =''球'',....等..)
必须使用字符串键才显得很尴尬在这种情况下。
这很容易并且仍然保留字典,因此它可以被修改并且
再次作为kwds传递给另一个函数或方法。
有什么想法吗?有没有更好的方法呢?
干杯,罗恩
Hi, I found the following to be a useful way to access arguments after
they are passed to a function that collects them with **kwds.
class namespace(dict):
def __getattr__(self, name):
return self.__getitem__(name)
def __setattr__(self, name, value):
self.__setitem__(name, value)
def __delattr__(self, name):
self.__delitem__(name)
def foo(**kwds):
kwds = namespace(kwds)
print kwds.color, kwds.size, kwds.shape etc....
foo( color=''red'', size=''large'', shape=''ball'', .... etc..)
It just seems awkward to have to use "string keys" in this situation.
This is easy and still retains the dictionary so it can be modified and
passed to another function or method as kwds again.
Any thoughts? Any better way to do this?
Cheers, Ron
推荐答案
-
James Stroud
加州大学洛杉矶分校基因组学和蛋白质组学研究所
专栏951570
洛杉矶,加利福尼亚州90095
这篇关于命名空间词典好吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!