gpt4 book ai didi

python - Python 中的 attr_reader

转载 作者:数据小太阳 更新时间:2023-10-29 07:29:10 24 4
gpt4 key购买 nike

attr_reader在 python 中是否有一个“同义词”,就像不需要让我输入的东西一样?:

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

最佳答案

要设置所有内容,请尝试:

class Foo():
def __init__(self, **kwargs):
for k,v in kwargs.items():
setattr(self, k, v)

或者只是一些属性:

class Foo():
def __init__(self, **kwargs):
for k in ['foo', 'bar', 'spam']:
setattr(self, k, kwargs[k])

或者来自(一些)ctor args:

class Foo():
def __init__(self, foo, bar, spam, bork, kevork):
for k in ['foo', 'bar']:
setattr(self, k, locals()[k])

或者全部:

class Foo():
def __init__(self, foo, bar, spam, bork, kevork):
args = dict(locals())
for k, v in (k,v for k,v in args.items() if not k == 'self'):
setattr(self, k, v)

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

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com