elasticsearch,Python,Python 2.7,elasticsearch" /> elasticsearch,Python,Python 2.7,elasticsearch" />

Python 我可以从外部类调用内部类吗';什么样的方法?

Python 我可以从外部类调用内部类吗';什么样的方法?,python,python-2.7,elasticsearch,Python,Python 2.7,elasticsearch,我正在使用elasticsearch_dsl库,但这个问题广泛适用于python 我想定义一个方法来创建一个名为:test\uuyyyy-MM-DD class Test(DocType): content = Text() class Meta: index = 'test' @classmethod def create_index(cls): now = datetime.datetime.utcnow().strftim

我正在使用elasticsearch_dsl库,但这个问题广泛适用于python

我想定义一个方法来创建一个名为:
test\uuyyyy-MM-DD

class Test(DocType):
    content = Text()

    class Meta:
        index = 'test'

    @classmethod
    def create_index(cls):
        now = datetime.datetime.utcnow().strftime('%Y-%m-%d')
        test = Index('{}__{}'.format(cls.Meta.index, now))
                                         ^^^ this does not exist
        test.doc_type(cls)
        test.create()
如何访问位于
内部类上的
索引
字段

我正在使用
elasticsearch_dsl
库,但这个问题广泛适用于Python

实际上,它并不广泛适用于Python。在普通类中,访问
cls.Meta.index
在这里会像往常一样工作。那个如果我正确阅读了源代码,那么您要查找的属性应该可以在
cls.\u doc\u type.index
中找到

>>> class Example(DocType):
...     class Inner:
...         index = 'inner_var'
...     class Meta:
...         index = 'meta_var'
...     @classmethod
...     def foo(cls):
...         print(cls.Inner.index)
...         print(cls._doc_type.index)
...         
>>> Example.foo()
inner_var
meta_var
注意:
DocTypeOptions
实例上出现一个前导下划线,即
\u doc\u type
,表示使用私有API。也许您应该寻找一个公共API来创建索引