如何从内部类访问外部类属性

时间:2021-06-11 16:52:35

标签: python-3.x attributes inner-classes

我在理解嵌套类时遇到问题,并且有一个特定的问题

我有一个模型“Pair”,它有一个属性“name”。我想要一个名为“History”的嵌套类,它传递变量“start”和“end”以及它的父(Pair)变量的“name”。一个@property 修饰函数将返回该列表的标准偏差。

要调用标准偏差,我会寻找类似的东西:

pair = Pair(base_currency='USD', quote_currency='GBP')
print(pair.History(granularity='1D', start=start_date, end=end_date).std_dev
>>> 634

我认为它应该如下所示,但无法弄清楚如何继承外部类属性“name”

class Pair:
    def __init__(self, base_currency, quote_currency):
        self.base_currency = base_currency
        self.quote_currency = quote_currency
        self.name = '{base}-{quote}'.format(base=base_currency, quote=quote_currency)
        self.history = self.History()

    class History:
        def __init__(self, granularity, start, end):
            self.name = HOW DO I GET THE PARENT NAME HERE
            self.granularity = granularity
            self.start = start
            self.end = end

        def data(self):
            return retrieve_history(product=self.name, granularity=self.granularity, start=self.start, end=self.end)

        @property
        def std_dev(self):
            return stdev(self.data)

0 个答案:

没有答案