嵌套self .__ parent __.__ parent__的Python快捷方式(语法糖)。

英特尔

我在Python(带有Pramramid框架)中遇到这种情况,我在这里尝试检查条件。这是代码:

if some_condition:
    value = self.__parent__.__parent__.__parent__.method()
else:
    value = self.__parent__.__parent__.method()

问题是,是否有更多的pythonic方法(语法糖快捷方式)用于__parent__.__parent__...动态表示

我知道有这样的Python语法:

value1, value2, value3 = (None,) * 3

我的案子有类似和动态的东西吗?我在Google中搜索,在Python文档中,在Reddit源代码中,在Open Stack源代码中进行搜索,并且花了2天的时间进行搜索,因此决定在此处进行询问。

弗拉基米尔(Vladimir)

据我所知,python中没有这样的语法。

但是,您确实可以实现自定义方法来获取父资源列表:

def find_ancestors(resource):
    ancestors = [resource]
    while hasattr(ancestors[-1], '__parent__'):
        ancestors.append(ancestors[-1].__parent__)
    return ancestors

或一种迭代它们的方法:

def iter_ancestors(resource):
    yield resource
    while hasattr(resource, '__parent__'):
        resource = resource.__parent__
        yield resource

另外,我不确定这种方式是否合适。我认为您应该看一下find_interface(..)方法,并以某种方式设法为您的资源定义适当的接口以找到它们。这样,您的代码将如下所示:

value = find_interface(self, ResourceA if some_condition else ResourceB).method()

更新: @Dunes在他的回答中提供的代码是通过祖先索引获得祖先的另一种好方法。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

我可以重构以避免“ self ::”和“ parent ::”吗?

来自分类Dev

验证一对多模型.parent不是self

来自分类Dev

Kivy中的居中元素:使用root与self.parent

来自分类Dev

什么时候使用Parent .__ init __(self)而不使用它?

来自分类Dev

我可以重构以避免“ self ::”和“ parent ::”吗?

来自分类Dev

嵌套的ng-repeat $ parent。$ index和$ index

来自分类Dev

LINQ Group by的嵌套对象值并重复Parent对象

来自分类Dev

有角度的嵌套指令重复,如果parent为$ last,则通过

来自分类Dev

鼻子中有self.assertNotEqual()的快捷方式吗?

来自分类Dev

为什么$ this调用父方法而不是self方法(parent和self中有相同的方法)?

来自分类Dev

(widgetName, self._w) + extra + self._options(cnf)) _tkinter.TclError: 未知选项“-parent”

来自分类Dev

C ++类中嵌套类型的快捷方式

来自分类Dev

更新parent.parent范围

来自分类Dev

是 corse parent == parent index 吗?

来自分类Dev

什么是 window.parent.parent

来自分类Dev

Graphviz语法快捷方式

来自分类Dev

HTML中的目标值blank,self,parent,top有什么区别?

来自分类Dev

循环遍历所有对象,直到插入parent为止,然后插入self

来自分类Dev

嵌套的表单对象无法通过验证抱怨缺少parent_id

来自分类Dev

修改子文档/深层嵌套文档时Parent.save()不起作用

来自分类Dev

Rails 4验证嵌套资源的唯一性:{scope::parent_id}

来自分类Dev

嵌套组件时,this.props.parent返回“ undefined”。如何使用父母功能?

来自分类Dev

淘汰赛如何获得$ parent的$ parent

来自分类Dev

如何使用JavaScript隐藏parent的parent元素?

来自分类Dev

python:将self传递给class方法内的嵌套函数合法吗?

来自分类Dev

Python:在内部嵌套类中使用来自外部类的 self.variable

来自分类Dev

更新了Angular2中@Parent()的语法

来自分类Dev

用嵌套文件夹中的相对符号链接替换快捷方式

来自分类Dev

Rails-模型内是否可以为其嵌套属性设置快捷方式?

Related 相关文章

  1. 1

    我可以重构以避免“ self ::”和“ parent ::”吗?

  2. 2

    验证一对多模型.parent不是self

  3. 3

    Kivy中的居中元素:使用root与self.parent

  4. 4

    什么时候使用Parent .__ init __(self)而不使用它?

  5. 5

    我可以重构以避免“ self ::”和“ parent ::”吗?

  6. 6

    嵌套的ng-repeat $ parent。$ index和$ index

  7. 7

    LINQ Group by的嵌套对象值并重复Parent对象

  8. 8

    有角度的嵌套指令重复,如果parent为$ last,则通过

  9. 9

    鼻子中有self.assertNotEqual()的快捷方式吗?

  10. 10

    为什么$ this调用父方法而不是self方法(parent和self中有相同的方法)?

  11. 11

    (widgetName, self._w) + extra + self._options(cnf)) _tkinter.TclError: 未知选项“-parent”

  12. 12

    C ++类中嵌套类型的快捷方式

  13. 13

    更新parent.parent范围

  14. 14

    是 corse parent == parent index 吗?

  15. 15

    什么是 window.parent.parent

  16. 16

    Graphviz语法快捷方式

  17. 17

    HTML中的目标值blank,self,parent,top有什么区别?

  18. 18

    循环遍历所有对象,直到插入parent为止,然后插入self

  19. 19

    嵌套的表单对象无法通过验证抱怨缺少parent_id

  20. 20

    修改子文档/深层嵌套文档时Parent.save()不起作用

  21. 21

    Rails 4验证嵌套资源的唯一性:{scope::parent_id}

  22. 22

    嵌套组件时,this.props.parent返回“ undefined”。如何使用父母功能?

  23. 23

    淘汰赛如何获得$ parent的$ parent

  24. 24

    如何使用JavaScript隐藏parent的parent元素?

  25. 25

    python:将self传递给class方法内的嵌套函数合法吗?

  26. 26

    Python:在内部嵌套类中使用来自外部类的 self.variable

  27. 27

    更新了Angular2中@Parent()的语法

  28. 28

    用嵌套文件夹中的相对符号链接替换快捷方式

  29. 29

    Rails-模型内是否可以为其嵌套属性设置快捷方式?

热门标签

归档