Передайте ** kwargs в методе класса, чтобы инициировать метод другого класса - PullRequest
0 голосов
/ 12 апреля 2020

Мой класс объявляет экземпляр другого класса в своем методе fit. Давайте назовем мой класс Foo, а другой класс Bar.

Foo принимает некоторые ключевые слова, которые используются только в этом классе, и некоторые другие **bar_kwargs, которые сначала устанавливаются в качестве атрибутов, используя self.dict__update__(**bar_kwargs) (взято из этого поста ) и который также должен быть передан методу __init__ из Bar. Я не могу заставить эту передачу **bar_kwargs работать. Кто-нибудь знает, как решить эту проблему?

Вот пример:

class Bar():
    def __init__(self,bar='bar'):
        self.bar = bar

class Foo():
    def __init__(self,foo_1,foo_2='foo_2',**bar_kwargs):

        self.foo_1 = foo_1
        self.foo_2 = foo_2
        self.__dict__.update(**bar_kwargs)

    def fit(self):
        self.bar = Bar(**bar_kwargs)


foo = Foo(foo_1='foo_1',foo_2='foo_2',bar='bar_passed_from_foo')
foo.fit()

, который выдает следующую ошибку:

NameError: name 'bar_kwargs' is not defined
...