python中的attr_reader是否有“同义词”,例如不需要我输入的内容?:

class Foo():
    def __init__(self, foo, bar, spam, spammity, spam, spam, quux, foobar, barfoo):
        self.foo = foo
        self.bar = bar
        self.spam = spam
        # And so on...

只需一行代码即可生成self.foo = foo, etc.,有点像ruby的attr_reader将如何制作
@foo = foo

最佳答案

您可以使用kwargs执行此操作:

class Foo():
  def __init__(self, **kwargs):
    self.foo = kwargs['foo']

然后传入命名参数:
foo = Foo(foo='bar')

当然,您可能想捕获KeyError异常

关于python - Python中的attr_reader,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10075778/

10-12 13:03